文章目录
numpy
- numpy是一个开源的python科学计算库,用于快速处理任意维度的数组
- 核心数据结构 numpy提供n维数组类型ndarray,他描述相同类型的item集合
创建ndarray
通过numpy.array()函数创建数组
可以在创建数组时指定数组的类型
创建全0 ndarray
通过numpy.zeros((i,j))创建一个i行j列的全0的ndarray
创建全1 ndarray
通过numpy.ones((i,j))创建一个i行j列的全1 ndarray
创建空 ndarray
空并不是真的空,而是创建一个每个元素都接近0的ndarray
创建随机 ndarray
np.random.random(i,j)随机生成一个0-1的i行j列 ndarray
numpy.arange(a,b,n).reshape(i,j)
numpy.arange(a,b,n)返回一个从a开始,到b结束(不包括b),步长为n的ndarray,不指定步长时默认为1
步长为2时
通过numpy.arange(a,b,n).reshape(i,j)生成矩阵i行j列的ndarray
numpy.linespace(a,b,n).reshape(i,j)
numpy.linespace(a,b,n)返回一个从a开始,到b结束的共n段的线段的ndarray
numpy.linespace(a,b,n).reshape(i,j)返回一个i行j列的ndarray
numpy.narray的属性
numpy.array.ndim
返回ndarray的维数
numpy.array.shape
返回ndarray的行列数,(a,b)a代表行数,b代表列数
numpyp.array.size
返回ndarray的元素个数
numpy.narray运算
在narray元素进行运算时,两个narray的shape和size要相等,否则会报错
-
两个ndarray对应位置上元素进行减法运算
+
两个ndarray对应位置上元素进行加法运算
array**n
ndarray的n次幂运算
numpy.sin(array)
返回ndarray上面每个元素的sin值
numpy.cos(array)
返回ndarray上面每个元素的cos值
numpy.tan(array)
返回ndarray上面每个元素的tan值
矩阵乘法
- 对应位置矩阵元素乘,即矩阵1的i行j列上的元素乘上矩阵2的i行j列上的元素为新矩阵的i行j列上的元素
- 矩阵乘法,按照线性代数中矩阵的乘法规则进行运算,矩阵1上的第一行元素与矩阵2上的第一列元素分别对应相乘之后求和即为新矩阵上1行1列的元素
np.dot(a,b)等同a.dot(b)
numpy.narray逻辑运算
array < number
判断ndarray中元素是否小于某个值,返回结果True,False的列表
array == number
判断ndarray中元素是否等于某个值,返回结果True,False的列表
numpy.array.all()
ndarray元素全为True时才为True,有一个False就为False
numpy.array.any()
ndarray元素全为False时才为False,有一个True就为True
numpy.where()三元运算符
np.where(判断条件表达式,成立时显示的值,不成立时显示的值)
numpy.ndarray统计运算
numpy.array.sum()
调用方式numpy.array.sum()或numpy.sum(numpy.array)
对ndarray元素进行求和运算,
添加参数axis=1 列 axis=0 行,numpy.array.sum(axis=1)表示对每个列分别求和
numpy.array.sum(axis=0)表示对每个行分别求和
numpy.array.min()
调用方式numpy.array.min()或numpy.min(numpy.array)
返回ndarray元素的最小值
添加参数axis=1 行 axis=0 列,numpy.array.sum(axis=1)表示对每个行分别求最小值
numpy.array.sum(axis=0)表示对每个列分别求最小值
numpy.array.max()
调用方式numpy.array.max()或numpy.max(numpy.array)
返回ndarray元素的最大值
添加参数axis=1 行 axis=0 列,numpy.array.sum(axis=1)表示对每个行分别求最小值
numpy.array.sum(axis=0)表示对每个列分别求最小值
numpy.argmin(array)
调用方式numpy.argmin(array)或numpy.array.argmin()
返回矩阵最小值索引,多维ndarray索引跟一维ndarray一样,索引是依次排列下去的
numpy.argmax(array)
调用方式numpy.argmax(array)或numpy.array.max()
返回矩阵最大值索引,多维ndarray索引跟一维ndarray一样,索引是依次排列下去的
numpy.mean(array)
调用方式numpy.mean(array)或numpy.array.mean()
返回ndarray的平均值
numpy.average(array)
调用方式numpy.average(array)
返回ndarray的平均值
numpy.median(array)
调用方式numpy.median(array)
返回ndarray的中位数
numpy. cumsum(array)
调用方式numpy.cumsum(array)或numpy.array.cumsum()
返回累加得到的新ndarray,新ndarray的第一个元素为原ndarray第一个元素,新ndarray的第二个元素为原ndarray第一个元素和第二个元素之和,新ndarray的第三个元素为原ndarray第一个元素和第二个元素和第三个元素之和,依次类推。
numpy. diff(array)
调用方式numpy.diff(array)
返回累差得到的新ndarray,新ndarray的第一个元素为原ndarray第二个元素与第一个元素的差,新ndarray的第二个元素为原ndarray第三个元素和第二个元素之和,依次类推。
numpy. nonzero(array)
调用方式numpy.nonzero(array)或numpy.array.nonzero()
返回ndarray,ndarray里面是原ndarray非零元素位置,一维ndarray返回的是索引,二维ndarray返回的行列位置,前面ndarray是行索引,后面ndarray是列索引。
numpy. sort(array)
调用方式numpy.sort(array)
将原ndarray逐行逐行的排序后返回
ndarray的转置
调用方式numpy.transpose(array)或numpy.array.T或numpy.array.transpose
返回原ndarray的转置ndarray,转置就是原ndarray的行变新ndarray的列,原ndarray的列变新ndarray的行
numpy.clip(array,min,max)
调用方式numpy.clip(array,min,max)或numpy.array.clip(min,max)
返回一个新ndarray,ndarray元素小于min的换为min,大于max的换为max,之间的保留不变
ndarray的索引
一维ndarray
- 一维ndarray,直接通过下标[i]访问
二维ndarray
- 二维ndarray,通过下标[i][j]访问
- 二维ndarray,通过下标[i,:]访问一行
- 二维ndarray,通过下标[:,i]访问一列
- 二维ndarray,通过下标[i][j:k]访问i行索引为j到k的元素(不包括k)
ndarray的遍历
- 通过for循环获取ndarray的行
for row in numpy.array:
代码块
- 通过for循环获取ndarray的列
for col in numpy.array.T:
代码块
numpy.array.flattenr()
调用方式numpy.array.flattenr()
返回ndarray的所有元素组成的新ndarray
numpy.array.flat
返回一个可迭代对象,可用于for循环做遍历可访问ndarray中所有值
numpy.axis
一般用于生成纵向的ndarray
ndarray的合并
numpy.vstack((array1,array2))
将两个ndarray上下拼接组成一个新ndarray
numpy.hstack((array1,array2))
将两个ndarray左右拼接组成一个新ndarray
numpy.concatenate()
用于ndarray的连接,可指定参数axis默认为0 ,axis=0代表行上做连接,axis=1代表列上做连接,
如果是一维ndarray不支持在列上合并
ndarray的分割
numpy.split(array,n,axis)
将ndarray分割为相等相同大小的n份,
分割时要求行列数是n的整数倍,如果分割的是行数,则行数必须是n的整数倍,如果分割的是列数则列数必须是n的整数被,否则会报错。
axis=0代表在行上分割1
axis=1代表在列上分割
numpy.array_split(array,n,axis)
将ndarray分割为不相等的n份,
axis=1表示在列上进行分割,4列分成三份不会出错
axis=0表示在行上进行分割,4行分成三份不会出错
numpy.hsplit(array,n)
将矩阵纵向分割成相同大小的2份
numpy.vsplit(array,n)
将矩阵横向分割成相同大小的2份
numpy读取文件
numpy.genfromtxt(‘路径’,delimiter=‘分割符’)
与原始数据对比发现,numpy读取数据时,会将str自动变为nan
最后
可以关注一下我的公众号,最近开始写公众号,我会在上面分享一些资源和发布一些csdn上发布不了的干货
点个关注是对博主最大的支持