文章目录
Numpy简单使用
Numpy 属性
array = np.array([[1,2,3],[4,5,6]]) #列表转化为矩阵
print(array)
print("number of dim:", array.ndim) #维度
print("shape"+str(array.shape)) #行数和列数
print("size:", array.size) #总的数目
array : 创建数组
dtype : 指定数据类型
zeros : 创建数据全为0
ones : 创建数组全为1
empty : 创建数据接近0
arange : 按指定范围创建数据
linspace: 创建线段
创建array
#创建数组
a = np.array([2,23,4])
print(a)
print("shape:", a.shape)
#指定数据类型
a = np.array([2,23,4],dtype=np.int)
print(a)
print(a.dtype)
a = np.array([1,2,3],dtype=np.int32)
print(a)
print(a.dtype)
a = np.array([1,2,4],dtype=np.float64)
print(a)
print(a.dtype)
#指定特定数据
a = np.array([[1,2,3],[4,5,6]])
print(a)
a = np.zeros([2,3],dtype=np.int32)
b = np.ones([2,3])
c = np.ones(3,dtype=np.int32)
d = np.empty((3,4)) #创建全空数组
e = np.arange(1,20,2,dtype=np.float)
f = np.linspace(1,20,5,True,False,dtype=np.int)
g = np.zeros([2,3]).reshape([3,2])
print(a)
print(b)
print(c)
print(d)
print(e)
print(f)
print(g)
numpy的基础运算1
a = np.array([10,20,30,40])
b = np.arange(4)
print("a:",a)
print("b:",b)
c = a + b
print("c:",c)
c = a*b
print("c:",c)
c = a**2
print("c:",c)
c = 10*np.sin(a)
print("c:",c)
print("b<3",b<3)
print("a*b",np.dot(a,b.transpose()))
a = np.random.random([2,4])
print("a",a)
print("a",a.sum())
print("sum_0:",np.sum(a,0))
print("sum_1:",np.sum(a,1))
print("a_min",a.min())
print("a_min_0",np.min(a,0))
print("a_min_1",np.min(a,1))
numpy基础运算2
A = np.arange(2,14).reshape((3,4))
print("A:",A)
print("A.argmin:",np.argmin(A))
print("A.argmax:",np.argmax(A))
print("A.mean(A):",np.mean(A))
print("A.median:",np.median(A))
print("A.cumsum:",np.cumsum(A)) #累加函数
print("A.diff:",np.diff(A)) #后一项与前一项差
print("A.nonzero:",np.nonzero(A)) #不为0的元素的索引
A = np.arange(14,2,-1).reshape((3,4))
print("A:",A)
print("A.sort:",np.sort(A)) #从小到大排序
print("A.transpose:",np.transpose(A)) #求矩阵的转置
print("A.T:",A.T) #求矩阵的转置
print("A.clip(5,9):",np.clip(A,5,9)) #限幅度,大于9的等于9,小于5的等于5
numpy索引
一维索引
A = np.arange(3,15)
print("A:",A)
print("A[3]:",A[3])
二维索引
A = A.reshape((3,4))
print("A:",A)
print("A[1][1]:",A[1][1])
print("A:",A[1,1])
print("A[1,:]",A[1,:])
for row in A:
print(row)
for column in A.T:
print(column)
print("A.flatten:",A.flatten()) #将矩阵平铺,转化成一维数组
for item in A.flat: #依次访问元素
print(item)
Numpy array合并
A = np.array([1,1,1])
B = np.array([2,2,2])
C = np.stack((A,B)) #上下合并
print("C:",C)
C = np.hstack((A,B)) #左右合并
print("C:",C)
print(A.shape)
print(A[np.newaxis,:].shape) #新建新的维度
C = np.concatenate((A,B,B,A),axis = 0) #多个array合并,横向和纵向都可以
print("C:",C)
Numpy array分割
A = np.arange(0,12).reshape((3,4))
print(np.split(A,2,axis=1)) #纵向分割, 2为分成2份,等量分割
print(np.split(A,3,0)) #横向分割,3为分成3份,等量分割
print(np.array_split(A,3,1)) #不等量分割
print(np.vsplit(A,3)) #纵向分割,等量3份
print(np.hsplit(A,2)) #横向分割,等量2份
= 的赋值方式带有关联性,相当于浅赋值,copy()的赋值方式没有关联性
a = np.arange(4)
#a = [0,1,2,3]
b = a
c = a
d = a
e = a.copy()
#改变a的值,b、c、d的值也会改变
a[0] = 11
print("d:",d)
print("e:",e)