import numpy as np
a = np.array([[1,2,3],[4,5,6]])#使用numpy把列表转换成矩阵,可以利用numpy加速计算print(a)print('number of dim:',a.ndim)#几维print('shape:',a.shape)#几行几列print('size:',a.size)#多少个元素
a = np.array([1,2,3],dtype=np.int)#定义数据存储的类型print(a.dtype)print(a)
a = np.zeros((3,4),dtype = np.int)#打印3行4列的全为0的矩阵print(a)
a = np.ones((3,4),dtype=np.int)#3行4列全为1的矩阵print(a)
a = np.arange(1,25,2).reshape((3,4))#reshape().用1到25步长为2的顺序数,生成3行4列的矩阵,共12个元素
a = np.linspace(1,10,6).reshape((2,3))#1-10分成6段共6个数.用reshape()搞成矩阵.
a = np.array([1,2,3,4]).reshape((2,2))
b = np.arange(1,5).reshape((2,2))
c = np.dot(a,b)#dot()为矩阵运算print(c)print(a.dot(b))#a,b的矩阵运算也可以写作a.dot(b)
c = a*b #a*b只是对应数直接相乘,与上面结果不同。
c =10*np.sin(a)#a中的每个元素取完sin后再乘以10
a = np.random.random((3,4))#两个random随机生成一个3*4的矩阵,0-1
a = np.arange(1,5).reshape((2,2))
np.sum(a)#对整个矩阵a的所有元素求和print(np.sum(a,axis=0))#sxis=0表示竖直相加print(np.sum(a,axis=1))#sxis=1表示水平相加
print(np.min(a))
np.max(a)
a = np.arange(2,14).reshape(3,4)
np.argmin(a)#最小值的索引
np.argmax(a)
np.mean(a)#计算平均值,或者a.mean()也可以。
np.median(a)#中位数
np.cumsum(a)#累加
np.diff(a)#相邻两项求差
np.transpose(a)#求转置print(a.T)#也是求转置print(a.T.dot(a))#a的转置*a
np.clip(a,5,9)#clip()让矩阵中所有小于5的数=5,大于9的数=9.规定最大最小值print(a[2][3])#按索引访问
a[2:]#取出第二行的所有数,:表示取所有数
a[:2]for row in a:print(row)#迭代矩阵每一列for column in a.T:print(column)#不能直接迭代列,可以利用转置来迭代for item in a.flat:#flat返回的是一个迭代器print(item)#打印每一项。print(list(a.flat))#迭代器可以用列表输出print(a.flatten())#将数组的副本转换为一个维度,并返回
a = np.array([1,1,1])
b = np.array([2,2,2])
c = np.vstack((a,b))#v stack(())上下合并ab,注意里面也有一个括号print(c)
c = np.hstack((a,b))#左右合并a,bprint(a[:,np.newaxis].shape)#在后面增加一维,可以把一个行向量变成一个列向量
a[np.newaxis,:]#在a的前面增加一维
c = np.concatenate((a,b,b,a),axis=0)#多个array的合并,axis=0在列上进行合并,即纵向合并##数组的分割split
a = np.arange(12).reshape((3,4))print(a)print(np.split(a,2,axis=1))#在纵向上分成两块print(np.vsplit(a,3))#横向分割成三块print(np.hsplit(a,2))#纵向分割成两块##Numpy赋值
a = np.arange(4)
b = a#直接赋值的话a,b是一个东西,a变b就会变
b = a.copy()#深拷贝,a变b不会变。