1.numpy的切片
X[m,n],示意X的第m维中的第n段数据。
也能够按切片写法:
X[m:n,k:v],第一维从m到n-1,第二维取从k到v-1
X[:,n],示意第一维的m全副取,第二维取第n段数据,如果是矩阵,就是取第n列。
X[:,list],第二维依照list外面的数字索引取
import numpy as np
np.random.seed(1)
X = np.random.randn(5,3)
print(X)
X是5行3列矩阵,后果:
[[ 1.62434536 -0.61175641 -0.52817175]
[-1.07296862 0.86540763 -2.3015387 ]
[ 1.74481176 -0.7612069 0.3190391 ]
[-0.24937038 1.46210794 -2.06014071]
[-0.3224172 -0.38405435 1.13376944]]
随机失去一个列表:
np.random.seed(1)
permutation = list(np.random.permutation(3))
print(permutation)
permutation列表是:[0, 2, 1]
按X[:,list]形式来取数据,也就是第一维全副取,第二维依照list的索引来取:
shuffed_X = X[:,permutation]
print(shuffed_X)
后果是:
[[ 1.62434536 -0.52817175 -0.61175641]
[-1.07296862 -2.3015387 0.86540763]
[ 1.74481176 0.3190391 -0.7612069 ]
[-0.24937038 -2.06014071 1.46210794]
[-0.3224172 1.13376944 -0.38405435]]
因为这里list其实是从0-2的,其维度与n一样,实际上就是随机地把列进行打乱。
发表回复