NumPy 数组切片索引

时间:2021-06-02 17:09:21   收藏:0   阅读:0

NumPy 数组切片

a = np.arange(10)
print(a[2: 5])
print(a[::-1])
print(a[-2:-4:-1])

# [2 3 4]
# [9 8 7 6 5 4 3 2 1 0]
# [8 7]

聚合函数

a = np.array([1, 4, 7, 9])
print(a.max(), a.min(), a.sum())

# 9 1 21

除了min,max和sum等函数,还有mean(均值),prod(数据乘法)计算所有元素的乘积,std(标准差),等等

上面的所有例子都在一个维度上处理向量。除此之外,NumPy 之美的一个关键之处是它能够将之前所看到的所有函数应用到任意维度上

不仅可以聚合矩阵中的所有值,还可以使用axis参数指定行和列的聚合

a = np.arange(1, 7).reshape(3, 2)
print(a.max(axis=0))  # 0 列 1 行

NumPy 获取元素

获取一个元素

a = np.arange(1, 13).reshape(3, 4)
print(a[1][2])
print(a[1, 2])

# 7
# 7

获取一行元素

a = np.arange(1, 13).reshape(3, 4)
print(a[1])
print(a[1, :])

# [5 6 7 8]
# [5 6 7 8]

获取一列元素

a = np.arange(1, 13).reshape(3, 4)
print(a[:, 1])

# [ 2  6 10]

通过整数数组进行索引

a = np.arange(1, 21).reshape(5, 4)
print(a[[1, 3, 4]])

# [[ 5  6  7  8]
#  [13 14 15 16]
#  [17 18 19 20]]

通过布尔数组进行索引

通过布尔数组取一维数组中的元素

a = np.array([12, 3, 23, 90, 234])
a1 = a[[True, True, False, False, True]]
print(a1)
print(a > 23)

# [ 12   3 234]
# [False False False  True  True]

通过布尔数组取二维数组中的元素

a = np.arange(10, 30).reshape(5, 4)
print(a[[True, True, False, True, False]])  # 这个表示选取第1,2,4行
print(a > 20)

# [[10 11 12 13]
#  [14 15 16 17]
#  [22 23 24 25]]
# [[False False False False]
#  [False False False False]
#  [False False False  True]
#  [ True  True  True  True]
#  [ True  True  True  True]]

取出两个数组中相同的元素

a = np.array([1, 4, 7, 9])
b = np.array([1, 9, 12, 23])
print(a[a == b])  # 对应位置的元素,会进行比较

# [1]
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!