numpy

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

numpy方法 解释
np.dtype 指定当前numpy对象的整体数据,
np.itemsize 对象中每个元素的大小, 单位字节
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(),生成的对象为ndarray类型的
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为产生的数据点数;也就是在区间x,y中产生z个点
np.ones(shape, dtype=None, order=‘C’) 生成数值为1且shape形状的的数组, shape可以是元组,表示创建几行几列数据;也可是单个数字,表示创建大小为n的一维数组
np.zeros(shape, dtype=None, order=‘C’) 生成数值为0且shape形状的的数组, shape可以是元组,表示创建几行几列数据;也可以是单个数字,表示创建大小为n的一维数组
np.full([x, y], z) 自定义模板数组, 生成x行y列都是z的数组
np.eye(N, M=None, k=0, dtype=float, order=‘C’) 生成大小为N的对角方阵,对角线的值都是1,其余都是0;M可以调整输出列数
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) 求平均数,axis=0同列取平均值,axis=1同行取平均值
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.asarray(a, dtype) 将a数据转化为固定的类型;array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会
np.where(condition, x=None, y=None) 满足条件(condition),输出x,不满足输出y
np.ravel(order=‘C’) 将多维数组降维成一维数组,返回原始多维数组的引用,注意如果改变降维后一维数组的值,则原始数组的值也会改变;order为降维时采用的策略,可选值{‘C’, ‘F’, ‘A’, ‘K’},默认行序优先
np.flatten(order=‘C’) 将多维数组降维成一维数组,返回原始多维数组的拷贝,改变降维后的一维数组的值,则原始数组的值不会改变;order为降维时采用的策略,可选值{‘C’, ‘F’, ‘A’, ‘K’},默认行序优先
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) 返回从起始值到终止值总数量为num的列表,endpoint为True表示包含终止值
np.meshgrid(*xi, **kwargs) meshgrid的作用是根据传入的两个一维数组参数生成两个数组元素的列表。如果第一个参数是xarray,维度是xdimesion,第二个参数是yarray,维度是ydimesion。那么生成的第一个二维数组是以xarray为行,ydimesion行的向量;而第二个二维数组是以yarray的转置为列,xdimesion列的向量。
np.array(p_object, dtype=None, copy=True, order=‘K’, subok=False, ndmin=0) 转化列表数据类型为ndarray
np.c_[xx.ravel(), yy.ravel()] 将两个数组中相同列的数据拼接起来,当做行;类似于pandas中的merge
np.r_[xx.ravel(), yy.ravel()] 将两个数组中所有行数据转化为一行数据;类似于pandas中的contact
data.reshape(-1, m) 表示事先不知道数据总数有多少个,numpy会自动计算数据的总数n,变化成为n列m行的数据
np.vstack([a,b]) 将a,b两个numpy对象按行堆叠到一块,列不变
np.hstack(arr1, arr2) 将两个数组进行堆叠,可以是一维或者多维(tuple/list),相当于分别合并
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/u012089823/article/details/81672120

你可能感兴趣的:(python,numpy方法&属性)