numpy个人整理

import numpy as np

为提高运算效率,ndarray数组值的类型默认相同,创建时自动指定默认数据类型(内存占用最大的值类型) 
默认浮点类型(float)


numpy方法 解释
np.dtype 指定当前numpy对象的整体数据, 见下一个表格
np.itemsize 对象中每个元素的大小, 单位字节
np.size 对象元素的个数, 相当于np.shape中的n*m值
np.shape 轴, 查看数组形状, 对于矩阵, n行m列
np.ndim
np.isnan(list) 筛选出nan值
np.iscomplex(list) 筛选出非复数
~ 取补运算符
np.array(数组, dtype=np.bool) 自定义数组类型
np.astype(np.bool) 转换数组类型
np.mat() 将python 列表转化成矩阵
np.mat().getA() 将matrix对象转成ndarray对象
np.matrix() 同上
np.asmatrix() 将ndarray对象转成matrix对象
np.tile() 重复某个数组。比如tile(A,n),功能是将数组A重复n次,构成一个新的数组传送门
np.T 矩阵转置, 行变列, 列变行, 对角线翻转矩阵,相当于np.transpose()
np.tolist() 转换成python列表, 用于和python原生结合写程序
np.multiply(x, y) 矩阵x 矩阵y相乘
np.unique() 数组驱虫, 并且从小到大生成一个新的数组
np.arange 同python range()
np.arange(24).reshape((2, 3, 4)) 创建一个2维3行4列的数组, 必须能被给定的长度除开, 可以索引和切片
np.arange(24).resize((2, 3, 4)) 同上, 会修改原值
np.linspace(x, y, z) 等间距生成, x起始, y截止, z步长
np.ones(x) 生成都是x的数组, 可传递二维(1,2),三维(2,3,4)数组, 几行几列, 具体的个数
np.zeros(x) 生成都是0的数组
np.full([x, y], z) 自定义模板数组, 生成x行y列都是z的数组
np.eye(x) 创建一个正方的x*x单位的矩阵, 对角线为1, 其余为0
np.flatten() 数组降维, 不改变 原值
np.random.rand(x, y, z) 生成一个一维x随机数或生成x*y的随机数组
np.random.randn(x, y) 正态分布随机数
np.random.randint(low, high, (shape)) 整数随机数
np.random.normal(loc, scale, (size)) 从指定正态分布中抽取样本, loc为概率分布的均匀值, 标准差scale
np.random.seed(s) 给一个随机数字固定
np.randomunifrom(low, high, (size)) 均匀分布的数组, 有小数
np.random.shuffle(a) 将数组a的第0轴(最外维度)进行随机排列(洗牌), 改变数组a, 行边列不变
np.random.permutation(a) 同上, 不改变数组a
np.random.choice(a, size=None, replace=False, p=数组a/np.sum(b)) 从一维数组a中以概率p抽取元素,形成size形状新数组,replace表示是否可以重用元素,默认为False,p为抽取概率,本位置越高,抽取概率越高
np.sum(axis=None) 求和, axis=0为列, 1为行
np.argsort() 矩阵每个元素坐标排序
np.sort(a, kind='quicksort',axis=None) 从小打大排序,默认quicksort;axis=None是将多维放在一维中排序;axis=-1多维数组按行排序;axis=0按列排序;
-np.sort(-a, axis=None) 从大到小排序
np.sort_values(‘字段’, ascending=False) 排序,升序排列
np.mean(axis=None) 平均数
np.average(axis=None,weights=None) 加权平均,weights加权值,不设为等权重,例子[10, 5, 1],每列分别X10,X5,X1在/(10+5+1)
np.var(axis=None) 方差:各数与平均数之差的平方的平均数
np.std(axis=None) 标准差:方差平方根
np.min(axis=None) 最小值
np.argmin(axis=None) 求数组中最小值的坐标
np.median(axis=None) 中位数
np.ptp(axis=None) 元素最大值与最小值的差
np.cumsum() 累加,cumsum和cumprod之类的方法不聚合,产生一个中间结果组成的数组,默认一维数组,1为按原样
np.cumprod() 累乘
np.count_nonzero(arr > 0) 计数非0值个数,布尔值会被强制转换为1和0,可以使用sum()对布尔型数组中的True值计数
np.bools.any() 测试数组中是否存在一个或多个True
np.bools.all() 数组中所有值是否都是True, 测试有没有空值
np.insert(arr, obj, values, axis=None) 插入数值,np.insert(a, [1], [[1],[2],[3]], axis=1)在第一列插入一个列表;axis=None插入到一维数组中;axis=1插入到列;axis=0插入到行
np.dot(a, b, out=None) 求乘积运算,a,b可以为同数字,同数组,同np.array对象,一般使用X_.T.dot(X_)
np.linalg.inv(a) 求矩阵的逆,ainv = inv(np.matrix(a)),因为矩阵不能直接相除,所以有时需要转化为矩阵的逆来做乘法运算,矩阵的逆就是用来解决矩阵除法问题的
np.select(condlist, choicelist, default=0) condlist定义筛选规则,choicelist做筛选时需要做的操作
np.column_stack((a,b)) 将a作为b的一列合并到b,a为一维列表,b为1到多维列表,必须满足a的列表大小等于b的行数,
np.concatenate((a, b), axis=0) 合并数组,axis=0按行合并,axis=1按列合并;np.concatenate((a, b.T), axis=1)
np.dtype类型  
np.bool 布尔值
np.int 整型
np.float 浮点型
np.complex 复数
np.object 对象
np.string_ ASCII字符
np.unicode_

Unicode所有字符, 字节数平台决定

np读取csv文件

  • numpy提供了便捷的内部文件存取,将数据存为np专用的npy(二进制格式)或npz(压缩打包格式)格式
  • npy格式以二进制存储数据的,在二进制文件第一行以文本形式保存了数据的元信息(维度,数据类型),可以用二进制工具查看查看内容
  • npz文件以压缩打包文件存储,可以用压缩软件解压
# 读取csv文件
np.loadtxt(frame,dtype=np.float,delimiter=None,skiprows=0,usecols=None,unpack=False)
# 去掉b'0.00'中的b
np.loadtxt('a.csv', dtype=bytes, delimiter=',').astype(str)
c = np.load('x.npy')                    # .npy文件读入数组
d = np.load("y.npz")                    # .npz压缩包读入

# 存储csv文件,本身是ASCII字符,不能存储非ASCII字符串,csv文件只能存储一维、二维数据,不能存储多维数据
np.savetxt(frame,array,fmt='%.18e',delimiter=None)
np.save('a.npy',a)                      # 存为.npy文件
np.savez("a.npz", ar0 = a, ar1 = b)     # 多个数组存入一个.npz压缩包
参数解释
参数 解释
frame 文件、字符串或产生器,可以是.gz或者bz2压缩文件
dtype 数据类型,可选,CSV的字符串以什么数据类型读入数组中,默认np.float
delimiter 分隔字符串,默认是任何空格,改为逗号
skiprows 跳过前x行,一般跳过第一行表头
usecols 读取指定的列,索引,元组类型
unpack 如果True,读入属性将分别写入不同的数组变量,False读入数据只写入一个数组变量,默认False

此文章是参考另外一个链接写的:https://blog.csdn.net/qq351469076/article/details/78817378

猜你喜欢

转载自blog.csdn.net/u012089823/article/details/81672120