2 回答

TA贡献1876条经验 获得超6个赞
numpy 数组的索引由元组而不是列表寻址。使用indx = (1, 1, 1)。
作为扩展,如果你想调用索引 (1, 1, 1) 和 (2, 2, 2),你可以使用
>>> indx = ([1, 2], [1, 2], [1, 2])
>>> x[indx]
array([13, 26])
列表行为背后的基本原理是 numpy 按顺序处理列表,所以
>>> indx = [1, 1, 1]
>>> x[indx]
array([[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]]])
它返回一个包含三个元素的列表,每个元素都等于 x[1]。

TA贡献2016条经验 获得超9个赞
这是Unpacking tuples/arrays/lists as indices for Numpy Arrays的副本,但您可以只创建一个元组
import numpy as np
def main():
my_array = np.array(
[
[[0, 1, 2], [3, 4, 5], [6, 7, 8]],
[[9, 10, 11], [12, 13, 14], [15, 16, 17]],
[[18, 19, 20], [21, 22, 23], [24, 25, 26]],
]
)
print(f"my_array[1,1,1]: {my_array[1,1,1]}")
indx = (1, 1, 1)
print(f"my_array[indx]: {my_array[indx]}")
if __name__ == "__main__":
main()
会给
my_array[1,1,1]: 13
my_array[indx]: 13
添加回答
举报