python提取矩阵元素_NumPyndarray数组元素的获取
⽣成 ndarray 数组后,如何读取我们所需要的数据呢?在 NumPy 中,既可以获取 ndarray 数组的单个元素,也可以获取⼀组元素(也即切⽚),这与 Python 中的列表(list)和元组(tuple)⾮常类似。
请看下⾯的代码:
import numpy as np
np.random.seed(2019)
nd1 = np.random.random([10])
#获取指定位置的数据, 获取第4个元素
nd1[3]
#截取⼀段数据
nd1[3:6]
#截取固定间隔数据
nd1[1:6:2]
#倒序取数
nd1[::-2]
#截取⼀个多维数组的⼀个区域内数据
nd2=np.arange(25).reshape([5,5])
nd2[1:3,1:3]
#截取⼀个多维数组中, 数值在⼀个值域之内的数据
nd2[(nd2>3)&(nd2<10)]
#截取多维数组中, 指定的⾏,如读取第2,3⾏
nd2[[1,2]] #或nd12[1:3,:]
##截取多维数组中, 指定的列,如读取第2,3列
nd2[:,1:3]
如果对上⾯这些获取⽅式还不是很清楚,没关系,下⾯则将通过图形的⽅式来进⼀步说明,如图1所⽰,左边为表达式,右边为表达式获取的元素。注意,不同的边界,表⽰不同的表达式。
python获取数组长度
图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)
运⾏结果:
随机可重复抽取
[[ 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.]]

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。