查找索引numpython
考虑形状(8,8)的NumPy数组 我的问题:第50个元素的索引(x,y)是什么 注意:用于按行计算元素 例如,在数组A中,其中查找索引numpython,python,numpy,Python,Numpy,考虑形状(8,8)的NumPy数组 我的问题:第50个元素的索引(x,y)是什么 注意:用于按行计算元素 例如,在数组A中,其中A=[[1,5,9],[3,0,2]]第五个元素将是“0” 有人能解释一下如何找到这个问题的一般解决方案,以及这个特定问题的解决方案吗?您可以使用它来找到与展平阵列索引对应的坐标。通常np.array以索引0开始,您必须对此进行调整 import numpy as np a = np.arange(64).reshape(8,8) np.unravel_index(5
A=[[1,5,9],[3,0,2]]
第五个元素将是“0”
有人能解释一下如何找到这个问题的一般解决方案,以及这个特定问题的解决方案吗?您可以使用它来找到与展平阵列索引对应的坐标。通常np.array
以索引0开始,您必须对此进行调整
import numpy as np
a = np.arange(64).reshape(8,8)
np.unravel_index(50-1, a.shape)
输出:
numpy.ndarray.falten(a)
返回折叠为一维的数组a
的副本。请注意,计数从0开始,因此,在您的示例中,0是第4个元素,1是第0个元素
import numpy as np
arr = np.array([[1, 5, 9], [3, 0, 2]])
fourth_element = np.ndarray.flatten(arr)[4]
或
8x8矩阵也是如此。在形状(r,c)的NumPy数组
a
(就像列表列表一样)中,第n个元素是
a[(n-1) // c][(n-1) % c],
假设n从1开始,如示例中所示。
这与r无关。因此,当r=c=8,n=50时,上述公式正好
a[6][1].
让我用你的例子来展示更多:
from numpy import *
a = array([[1, 5, 9], [3, 0, 2]])
r = len(a)
c = len(a[0])
print(f'(r, c) = ({r}, {c})')
print(f'Shape: {a.shape}')
for n in range(1, r * c + 1):
print(f'Element {n}: {a[(n-1) // c][(n-1) % c]}')
结果如下:
(r, c) = (2, 3)
Shape: (2, 3)
Element 1: 1
Element 2: 5
Element 3: 9
Element 4: 3
Element 5: 0
Element 6: 2
你可能想要接受一个答案。
from numpy import *
a = array([[1, 5, 9], [3, 0, 2]])
r = len(a)
c = len(a[0])
print(f'(r, c) = ({r}, {c})')
print(f'Shape: {a.shape}')
for n in range(1, r * c + 1):
print(f'Element {n}: {a[(n-1) // c][(n-1) % c]}')
(r, c) = (2, 3)
Shape: (2, 3)
Element 1: 1
Element 2: 5
Element 3: 9
Element 4: 3
Element 5: 0
Element 6: 2