Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 多个np。其中返回的多个值无法正确访问_Python_Arrays_Numpy_Tuples - Fatal编程技术网

Python 多个np。其中返回的多个值无法正确访问

Python 多个np。其中返回的多个值无法正确访问,python,arrays,numpy,tuples,Python,Arrays,Numpy,Tuples,运行时: np.where(vals == min(vals)) 有多个输出,这意味着列表中的最小值出现一次以上。返回值有意义,它是由数组组成的元组: result = (array([0, 2]),) 但是,我尝试访问阵列,然后执行以下操作: result[0] 这将成为输出: [0 2] 这到底是什么[02]??当我说结果[0][1]时,它说索引越界了 In [62]: arr = np.array([2,3,2])

运行时:

np.where(vals == min(vals))
有多个输出,这意味着列表中的最小值出现一次以上。返回值有意义,它是由数组组成的元组:

result = (array([0, 2]),)

但是,我尝试访问阵列,然后执行以下操作:

result[0]

这将成为输出:

[0 2]

这到底是什么[02]??当我说结果[0][1]时,它说索引越界了

In [62]: arr = np.array([2,3,2])                                                                             
In [63]: idx = np.where(arr == np.min(arr))                                                                  
In [64]: idx                                                                                                 
Out[64]: (array([0, 2]),)
此元组可直接用于索引
arr
,并返回匹配值:

In [65]: arr[idx]                                                                                            
Out[65]: array([2, 2])
argwhere
仅将
转置
应用于此元组,将其转换为二维数组:

In [66]: np.argwhere(arr == np.min(arr))                                                                     
Out[66]: 
array([[0],
       [2]])
然后,您可以迭代数组的行以获取
arr
的单个值:

In [67]: for i in _66: 
    ...:     print(arr[i]) 
    ...:                                                                                                     
[2]
[2]
但我不知道这个迭代什么时候有用。[65]中的索引速度更快

2d示例更有趣:

In [74]: x = np.arange(12).reshape(3,4)                                                                      
In [75]: x%3                                                                                                 
Out[75]: 
array([[0, 1, 2, 0],
       [1, 2, 0, 1],
       [2, 0, 1, 2]])
In [76]: idx = np.where(x%3==0)                                                                              
In [77]: idx                                                                                                 
Out[77]: (array([0, 0, 1, 2]), array([0, 3, 2, 1]))
In [78]: np.argwhere(x%3==0)                                                                                 
Out[78]: 
array([[0, 0],
       [0, 3],
       [1, 2],
       [2, 1]])

能否显示
VAL
其中
返回一个元组,即
VAL的每个维度一个数组元素
<代码>结果[0]对该元组进行索引,并返回该数组。数组显示
[0 1]
。VAL只是一个普通的np数组,类似于
[2,3,2]
,它的输出是:
(数组([0,2]),)
。但是如果
result[0]
[01]
,我如何迭代返回的
result[0]
数组?