numpy操作
操作环境jupyter
import numpy as np
列表转矩阵
array=np.array([[1,2,3],
[2,3,4]])
numpy属性
print(array)
array.ndim#获取维度
array.shape#获取形状行数列数
array.size#元素个数
a=np.array([1.2,3],dtype=np.int)#创建一维数组并指定类型
#显示类型默认数据位数
a.dtype
创建array
a=np.zeros((3,4))#定义全0数组,参数3行4列
print(a)
a=np.ones(7,dtype=np.float)#全1数组,7个元素
print(a)
a=np.empty((3,4))#空矩阵
print(a)
a=np.arange(1,12,2)#arange()生成类似于python的range函数
print(a)
a=a.reshape((2,3))#重新定型数组与原数组元素个数相同
a
a=np.linspace(1,10,20)#1到10的数自动计算步长总共20步(第三个参数)
a
矩阵操作
a=np.arange(4).reshape((2,2))
b=np.array([[1,2],[3,4]])
c=a-b
c
矩阵乘法
d=np.dot(a,b)#a.doe(b)等价S
d
e=a*b#逐个相乘
e
d=a**2#平方操作
d
a=np.sin(a)#三脚函数对a的每个元素求sin值
a
基础操作
print(b<3)#每个元素进行操作返回bool类型
a=np.random.random((2,4))#生成随机数
a
**#求和,最大值,最小值**
print(np.sum(a,axis=1))#axis=1对行求和
print(np.min(a,axis=0))#axis=0对列中最小值
print(np.max(a))
其他操作
print(np.argmin(a))#最小值的索引第几个元素
print(np.argmax(a))#最大值的索引
print(np.mean(a))#求均值a.mean也可以
print(np.average(a))
print(np.median(a))#中位数
第i个元素是前面i-1个元素的和
print(np.cumsum(a))
累差后面减前面一个元素的差组成新的矩阵
print(np.diff(a))
对a按行排序
print(np.sort(a))
矩阵转置
print(np.transpose(a))
元素大于0.5都变成0.5小于0.3的变成0.3
print(np.clip(a,0.3,0.5))
numpy索引
A=np.arange(3,15).reshape((3,4))
print(A)
print(A[2][1])#根据行列定位元素
print(A[2,:])#切片操作第二行所有数可以指定要取的范围
迭代每一行
for row in A:
print(row)
转置矩阵迭代列
for column in A.T:
print(column)
迭代每一个元素,A.flat()转换为一维
for item in A.flat:
print(item)
array合并
A=np.array([1,1,1])
B=np.array([2,2,2])
#上下合并可以操作多个
C=np.vstack((A,B))
print(C)
print(A.shape,C.shape)
#左右合并
print(np.hstack((A,B)))
#一维横向变纵向增加维度
print(A[np.newaxis,:])
print(A[:,np.newaxis])
array分割
A=np.arange(12).reshape((3,4))
print(A)
print(np.split(A,2,axis=1))#axis=1纵向分割按列,第二个参数指定分割成几部分等价于np.hsplit()
#不等分割元素个数不一样
print(np.array_split(A,3,axis=1))