赞
踩
Numpy 的类型 | 描述 |
---|---|
np.int8 | 字节(-128到127) |
np.int16 | 整数(-32768至32767) |
np.int32 | 整数(-2147483648至2147483647) |
np.int64 | 整数(-9223372036854775808至9223372036854775807) |
np.uint8 | 无符号整数(0到255) |
np.uint16 | 无符号整数(0到65535) |
np.uint32 | 无符号整数(0到4294967295) |
np.uint64 | 无符号整数(0到18446744073709551615) |
np.intp | 用于索引的整数,通常与索引相同 ssize_t |
np.uintp | 整数大到足以容纳指针 |
np.float32 | |
np.float64 / np.float_ | 请注意,这与内置python float的精度相匹配。 |
np.complex64 | 复数,由两个32位浮点数(实数和虚数组件)表示 |
np.complex128 / np.complex_ | 请注意,这与内置python 复合体的精度相匹配。 |
bool | 存储True和False值的布尔类型 |
object | python对象类型 |
string_ | 固定长度的字符串类型 |
unicode_ | 固定长度的unicode类型 |
# 一维
nl = np.array([1,2,3,4])
# 二维:
n2 = np.array([[1,2,3],[2,3,4],[5,6,7]])
N2.shape # 查看行列数,一个元组
np.array(list('abcdeef3')).reshape(2,4) #一维转化为二维,2行4列:np.array传入的数据必须一致。
np.ones(shape = [2,3],dtype = int) # 2行3列,值全为1的数组
ones = np.ones(shape =[100,80,4],dtype = float)
np.zeros # 用法同np.ones()方法
np.random.randn(5) # -1~1随机数,5个
np.random.random(5,4) #0~1随机数:生成5行4列随机数
np.random.rand # 0~1随机数
np.random.randint(55,100,size = 9) # 区间左闭又开随机整数,size指定数据个数。
np.arange(3,7,0.3) # 生成连续数,左闭又开,第三个参数,间隔,默认为1。arange(start开始,stop结束,step,dtype =None)左闭右开
ndarray[0,1] # 一维的第二个数据,跟切片取数一致。
#切片:左闭右开
np.random.randint(150,size =10)
n2[1:3] #第二个,第三个
#切片排序
n3 = np.arange(1,10,1)
n3[::2] # 两个冒号,后边的数字是间隔,如果正整数从前往后切,如果负数,从后往前按间隔切
n3.reshape(2,5) #转化两行五列
# 如果是负数,多维直接转化为一维。图片三维转一维,比如:
n3.reshape((-1))
l=np.array((1,2,3))
n=l
n[1]=5 # l也随之改变
# 可以使用copy()函数创建副本
n = l.copy()
三个函数完成切分工作,左闭右开
n5 = np.random.randint(0,150,size=(5,7))
np.split(n5,(1,3)) 切成三部分,0-1切下。2-3切下。:默认切分行
照片裁剪,可以用这种方法。
np.split(n5,(1,3),axis = 1) 切分列axis=1
np.vsplit(n5,(1,3)) 默认切分行
np.hsplit(n5,(1,3)) 切分列
np.concatenate 级联需要注意的点,类似于pandas的concat方法:
a1=np.random.randint(1,10,size=(5,5))
a1.ndim 查看a1的维度
np.concatenate((a1,a1))
np.concatenate((a1,a1),axis = 1)
np.concatenate((a1,a1),axis = 0)
# np.hstack 与 np.vstack
# 水平级联与垂直级联,进行维度的变更。
a2 = np.array((1,2,3))
a3 = np.vstack(a2) # 转化为2维数据,三行一列
a4 =np.hstack(a2) #2维转化为1维
当我们想取top-n排序输出时,可以先通过partition函数获取top元素再调用sort排序
np.partition(a,k)
n3 = np.partition(n2,-5)[:5]
n3.sort()
np.sort() 和ndarray.sort都可以,但有区别:
类型 | 说明 |
---|---|
abs, fabs | 计算整数、浮点数或复数的绝对值。对于非复数值,可以使用更快的fabs。 |
sqrt | 计算各元素的平方根。相当于arr ** 0.5 |
sqare | 计算各元素的平方。相当于arr ** 2 |
exp | 计算各元素的e^x |
log, log10, log2, log1p | 分别为自然对数、底数为10的log、底数为2的log和log(1 + x)。 |
sign | 计算各元素的正负号:1(正数)、0(零)、-1(负数)。 |
ceil | 计算各元素的ceiling值,即大于等于该值的最小整数。 |
floor | 计算各元素的floor值,即小于等于该值的最小整数。 |
rint | 将各元素值四舍五入到最接近的整数,保留dtype。 |
modf | 将数组的小数部分与整数部分以两个独立数组的形式返还。 |
isnan | 返回一个表示“哪些值是NaN(这不是一个数字)”的布尔型数组 |
isfinite, isinf | 分别返回一个表示“哪些元素是有限的(非inf,非NaN)”或“哪些元素是无穷的”的布尔型数组 |
cos, cosh, sin, sinh, tan, tanh | 普通型或双曲型三角函数 |
arccos, arccosh, arcsin, arcsinh, arctan, arctanh | 反三角函数 |
logical_not | 计算各元素not x的真值。相当于-arr。 |
argmin | 最小值所在的索引 |
argmax | 最大值所在的索引 |
类型 | 说明 |
---|---|
add | 将数组中对应的元素相加 |
subtract | 从第一个数组中减去第二个数组中的元素 |
multiply | 数组元素相乘 |
divide, floor_divide | 除法或向下取整除法 |
power | 对第一个数组中的元素A和第二个数组中对应位置的元素B,计算A^B。 |
maximum, fmax | 元素级的最大值计算。fmax将忽略NaN。 |
minimum, fmin | 元素级的最小值计算。fmin将忽略NaN。 |
mod | 元素级的求模计算 |
copysign | 将第二个数组中的符号复制给第一个数组中的值 |
greater, greater_equal, less, less_equal,equal, | 执行元素级的比较,最终产生布尔型数组。 |
not_equal | |
logical_and, logical_or, logical_xor | 执行元素级的真值逻辑运算,最终产生布尔型数组。 |
类型 | 说明 |
---|---|
sum | 对数组中全部或某轴向的元素求和。零长度的数组的sum为0。 |
mean | 算术平均数。零长度的数组的mean为NaN。 |
std, var | 分别为标准差和方差,自由度可调(默认为n)。 |
min, max | 最大值和最小值 |
argmin | 分别为最大值和最小值的索引 |
cumsum | 所有元素的累计和 |
cumprod | 所有元素的累计积 |
类型 | 说明 |
---|---|
unique(x) | 计算x中的唯一元素,并返回有序结果。 |
intersect1d(x, y) | 计算x和y中的公共元素,并返回有序结果。 |
union1d(x, y) | 计算x和y的并集,并返回有序结果。 |
in1d(x, y) | 得到一个表述"x的元素是否包含于y"的布尔型数组 |
setdiff1d(x, y) | 集合的差,即元素在x中且不在y中 |
setxor1d(x, y) | 集合的异或,即存在于一个数组中但不同时存在于两个数组中的元素。 |
常用的numpy.linalg函数
类型** | 说明 |
---|---|
diag | 以一维数组的形式返回方阵的对角线(或非对角线元素),获将一维数组转换为方阵(非对角线元素为0)。 |
dot | 矩阵乘法 |
trace | 计算对角线元素的和 |
det | 计算矩阵行列式 |
eig | 计算方阵的特征值和特征向量 |
inv | 计算方阵的逆 |
pinv | 计算矩阵的Moore-Penrose伪逆 |
qr | 计算QR分解 |
svd | 计算奇异值分解 |
solve | 解线性方程Ax = b,其中A为一个方阵。 |
lstsq | 计算Ax = b的最小二乘解 |
类型 | 说明 |
---|---|
seed | 确定随机数生成器的种子 |
permutation | 返回一个序列的随机排列或返回一个随机排列的返回 |
shuffle | 对一个序列就地随机乱序 |
rand | 产生均匀分布的样本值 |
randint | 从给定的上下限范围内随机选取整数 |
randn | 产生正态分布(平均值为0,标准差为1) |
binomial | 产生二项分布的样本值 |
normal | 产生正态(高斯)分布的样本值 |
beta | 产生Beta分布的样本值 |
quare | 产生卡方分布的样本值 |
gamma | 产Gamma分布的样本值 |
uniform | 产生在[0, 1]中均匀分布的样本值 |
类型 | 说明 |
---|---|
concatenate | 最一般化的连接,沿一条轴连接一组数组 |
vstack, row_stack | 以面向行的方式对数组进行堆叠(沿轴0) |
hstack, | 以面向行的方式对数组进行堆叠(沿轴1) |
column_stack | 类似于hstack,但是会先将一维数组转换为二维列向量。 |
dstack | 以面向“深度”的方式对数组进行堆叠(沿轴2) |
split | 沿指定轴在指定的位置拆分数组 |
hsplit, vsplit, dsplit | split的便捷化函数,分别沿着轴0、轴1和轴2进行拆分。 |
# np.histograms:统计数据切分点间隔的数据条数,可用作直方图
s = np.random.randint(1,100,sie = 1000)
np.histogram(s.values,bins = np.arange(1,100,10)) 也可以给bin直接传入整数参数。
a = np.random.random((3,4))
a.ravel() #拉直成一维数组
a.shape=(4,3) #也可以用shape设定形状
a.reshpe() #重新设置形状。
a.sort(axis =1) #按照行排序
a.argsort(axis =1) #排序,得到排序后的索引。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。