【问题标题】:Indexing a 2D numpy array with another 2D nparray用另一个 2D np 数组索引 2D numpy 数组
【发布时间】:2022-07-08 00:42:18
【问题描述】:

我对索引 NP 数组感到困惑。 假设我们必须使用 2D nparrays。 a.shape(21,3) b.shape(225,300) b 包含不超过索引范围的值。 现在我的问题是这到底是做什么的?

a[b[:], :]

【问题讨论】:

  • 您的意思是所有b 值都在[0,21) 范围内吗?使用裸 [:] 没有任何作用。
  • 测试有什么问题?

标签: numpy indexing numpy-slicing


【解决方案1】:

假设你有一个值数组

import numpy as np

num_values = 10

values = np.arange(100, 100 + num_values)

print(values)
# [100 101 102 103 104 105 106 107 108 109]

您可以使用numpy integer array indexing 将它们绘制成您想要的形状——生成的形状考虑了indices 数组的形状:

indices = np.array([[0, 1, 0, 3], [2, 7, 0, 9]])
arr = values[indices]

print(arr)
# [[100 101 100 103]
#  [102 107 100 109]]

你的情况只是一个概括

values = np.random.rand(num_values, 3)
indices = np.random.randint(0, num_values, size=(5, 7))

arr = values[indices]

print(arr.shape)
# (5, 7, 3)

【讨论】:

    猜你喜欢
    • 2019-12-23
    • 2022-01-09
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 2012-11-07
    • 1970-01-01
    相关资源
    最近更新 更多