一维和列表索引的操作一致。
(1)、将第二行全部数字改为0.88
n= np.random.rand(3,4) print(n) #将第二行全部数字改为0.88 n[1]=0.88 print(n)
(2)、将第二行最后一个数改为0.88
a= np.random.rand(3,4) print(a) #将第二行最后一个数改为0.88 a[1][3]=0.88 print(a)
import numpy as np #列表有逗号间隔 # I = [1,2,3,4,5,6,7,8] # a = I[2:6] # b = I[::-1] #翻转 # print(a) # print(b) # #数组没有逗号间隔 # n = np.array(I) # a = n[2:6] # print(n) # print(a) #对于二维数组的行切片 n = np.random.randint(0,10,size=(6,8)) # #取一行 # print(n[0]) # #连续取多行 # print(n[1:4]) # #取不连续多行 # print(n[[1,2,4]]) #对于二维数组的列切片 n = np.random.randint(0,10,size=(6,8)) print(n) #取一列 print(n[:,0]) #取第一列 print(n[1:4,0]) # 取第二到第四行的第一列 #取连续的多列:切片 print(n[:,2:5]) #取第三到第五列的所有行 #取不连续的多列:中括号 print(n[:,[1,3,4]]) #取第二列和第四列和第五列的所有行
(1)、行翻转
n[::-1]
(2)、列翻转
n[:,::-1]
使用reshape函数
import numpy as np n = np.arange(1,21) print(n) #reshape:将数组改变形状 变成二维 a = np.reshape(n,newshape=(4,5)) print(a) #使用-1:表示任意剩余维度长度 e = n.reshape(4,-1) print(e) r = n.reshape(-1,2) print(r)
#级联(合并) a = np.concatenate((n1,n2)) #上下合并 print(a) l = np.concatenate((n1,n2),axis=0) #上下合并 print(l) p = np.concatenate((n1,n2),axis=1) #左右合并 print(p) #左右合并 i = np.hstack((n1,n2)) print(i) #上下合并 u = np.vstack((n1,n2)) print(u)
(1)、np.split()
(2)、np.hsplit()
(3)、np.vsplit()
import numpy as np n = np.random.randint(0,100,size=(4,4)) print(n) a = np.split(n,4) print(a) b = np.hsplit(n,4) print(b) #垂直拆分,平均拆成3份 c = np.vsplit(n,4) print(c) #按照指定位置拆分 d = np.vsplit(n,(1,2,4)) print(d) #水平拆分 e = np.hsplit(n,4) print(e) print() #split:做水平和垂直拆分 #axis = 0:行 #axis = 1:列 a = np.split(n,4) a = np.split(n,4,axis=0) print(a) print() m = np.split(n,4) m = np.split(n,4,axis=1) print(m)
import numpy as np #n2不会随着n的变化而变化 n = np.random.randint(0,10,size=(2,3)) n2 = n.copy() n[0][0] = 0 print(n2) print(n) #注:如果用n3 = n,则n2会随着n的变化而变化 n3 = n print(n3)