1、Numpy基础
1.2 ndarray 数组获取元素
对于一维数组,其实跟列表的切片很类似
nd1 = np.random.random([10])
print(nd1)
# 获取指定位置的元素,利用切片,获取第3个元素
# 对于一维数组
print(nd1[2])
# 截取一段数据,比如截取第2个到第5个元素
# [1:5]取头不取尾
print(nd1[1:5])
# 截取固定间隔数据
# [1:9:2] 同样取头不取尾
# [初始:终止:步长]
print(nd1[1:9:2])
# 倒序取数
print(nd1[::-1])
对于多维数组
# 对于多维数组
nd2 = np.arange(0, 25).reshape(5, 5)
print(nd2)
# 截取一个多维数组的一个区域内数据
# [行切片:列切片]
print(nd2[0:2, 1:3])
# 截取一个多维数组中,数值在一个值域之内的数据
print(nd2[(nd2 > 3) & (nd2 < 10)])
# 截取多维数组中指定的行,如读取2、3行
print(nd2[1:3, :])
print(nd2[[1, 2]])
# 截取多维数组中,指定的列,如读取第3,4列
print(nd2[:, 2:4])
获取数组中的部分元素除了通过制定索引标签来实现外,还可以通过使用一些函数来实现,如通过random.choice
# random.choice函数随机抽取元素
nd3 = np.arange(0, 25, dtype=float)
print(nd3)
# 随机可重复抽取元素
c1 = np.random.choice(nd3, size=(3, 4)) # size指定输出数组形状
print("随机可重复抽取\n", c1)
# 随机但不重复抽取
# replace是缺省参数,默认为True,即可重复抽取
c2 = np.random.choice(nd3, size=(3, 4), replace=False)
print("随机不可重复抽取\n", c2)
# 随机但按规律抽取
# 参数p指定每个元素对应的抽取概率,默认为等概率抽取
c3 = np.random.choice(nd3, size=(3, 4), p=nd3/np.sum(nd3))
print("随机按规律抽取\n", c3)