import numpy as np
A = np.arange(3,15)print(A)print(A[3])
A = np.arange(3,15).reshape(3,4)print(A)print(A[2])# 只索引行print(A[1][1])#第一行的第一列print(A[1,1])#第一行的第一列print(A[1,:])#第一行的所有数print(A[:,1])#第一列的所有数print(A[1,1:3])#第一行第一列到第三列的数# for 循环for row in A:print(row)# 迭代每一行for column in A.T:print(column)#通过转置,得到迭代的列print(A.flatten())#将矩阵内容放入一页中for item in A.flat:#print(item)#迭代矩阵中每一个项
numpy array 合并
import numpy as np
A = np.array([1,1,1])[np.newaxis,:]# np.newaxis的功能:插入新维度
B = np.array([2,2,2])[np.newaxis,:]# 原本的(10,)移到行上,然后新增一列
C = np.vstack((A,B))#vertical stack 上下合并
D = np.hstack((A,B))#horizontal stack 左右合并print(C)print(D)print(A.shape,C.shape,D.shape)print(A.transpose())# 不能通过转置直接将横向的数列转化为竖向的数列print(A.T.shape)#原因:还是一维的print(A[np.newaxis,:])#给行增加一个维度; print(A[:,np.newaxis]) 给列加一个维度
E=np.concatenate((A,B,B,A),axis=0)#可以进行多个array的合并,并可以要求在横纵哪个维# 度合并 (如果用的是序列而不是矩阵,列的stack会报错), # axis = 0 : 将A,B保证列数不变,纵向合并。行数相加print(E)
numpy array 分割
import numpy as np
A = np.arange(12).reshape((3,4))print(A)print(np.split(A,2,axis=1)#将列数分为两半'''
[array([[0, 1],
[4, 5],
[8, 9]]),
array([[ 2, 3],
[ 6, 7],
[10, 11]])]
'''
A = np.arange(12).reshape((3,4))print(np.split(A,1,axis=0)# print(np.split(A,3,axis=1)) 不能进行不等量分割#不等量分割如下:
A = np.arange(12).reshape((3,4))print(np.array_split(A,3,axis=1))
A = np.arange(12).reshape((3,4))print(np.vsplit(A,3))#横向切割,将纵长数组切割为纵短数组
A = np.arange(12).reshape((3,4))print(np.hsplit(A,2))#纵向分割
这里np.vsplit 和 np.stack 切割方向相反
赋值 & copy
import numpy as np
a = np.arange(4)
b=a
c = a.copy()
a[0]=10
b, c
'''
(array([10, 1, 2, 3]), array([0, 1, 2, 3]))
'''