购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 存取元素

上节我们介绍了生成ndarray的几种方法,数据生成后,如何读取我们需要的数据?这节我们介绍几种读取数据的方法。


import numpy as np
np.random.seed(2018)
nd11 = np.random.random([10])
#获取指定位置的数据,获取第4个元素
nd11[3]
#截取一段数据
nd11[3:6]
#截取固定间隔数据
nd11[1:6:2]
#倒序取数
nd11[::-2]
#截取一个多维数组的一个区域内数据
nd12=np.arange(25).reshape([5,5])
nd12[1:3,1:3]
#截取一个多维数组中,数值在一个值域之内的数据
nd12[(nd12>3)&(nd12<10)]
#截取多维数组中,指定的行,如读取第2,3行
nd12[[1,2]]  #或nd12[1:3,:]
##截取多维数组中,指定的列,如读取第2,3列
nd12[:,1:3]

如果你对上面这些获取方式还不是很清楚,没关系,下面我们通过图形的方式说明如何获取多维数组中的元素,如图1-1所示,左边为表达式,右边为对应获取元素。

图1-1 获取多维数组中的元素

获取数组中的部分元素除通过指定索引标签外,还可以使用一些函数来实现,如通过random.choice函数从指定的样本中进行随机抽取数据。


import numpy as np
from numpy import random as nr

a=np.arange(1,25,dtype=float)
c1=nr.choice(a,size=(3,4))  #size指定输出数组形状
c2=nr.choice(a,size=(3,4),replace=False)  #replace缺省为True,即可重复抽取
#下式中参数p指定每个元素对应的抽取概率,默认为每个元素被抽取的概率相同
c3=nr.choice(a,size=(3,4),p=a / np.sum(a))
 print("随机可重复抽取")
print(c1)
print("随机但不重复抽取")
print(c2)
print("随机但按制度概率抽取")
print(c3)

打印结果: 10HKp4AYzHkxnRWGarCCyYiKi0r+WG7EtaZUdSJMarE1qmscA3hZ7YwhRkSUNEcu


随机可重复抽取
[[  7.  22.  19.  21.]
 [  7.   5.   5.   5.]
 [  7.   9.  22.  12.]]
随机但不重复抽取
[[ 21.   9.  15.   4.]
 [ 23.   2.   3.   7.]
 [ 13.   5.   6.   1.]]
随机但按制度概率抽取
[[ 15.  19.  24.   8.]
 [  5.  22.   5.  14.]
 [  3.  22.  13.  17.]]

点击中间区域
呼出菜单
上一章
目录
下一章
×