Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 循环二维数组,若值为true,则追加到空数组中_Python_Arrays - Fatal编程技术网

Python 循环二维数组,若值为true,则追加到空数组中

Python 循环二维数组,若值为true,则追加到空数组中,python,arrays,Python,Arrays,我试图循环遍历数组的第二列,找出==1的每个值,然后将第一列中的对应值存储到新数组中 array1 = [] array2 = ([10,0], [11,0], [12,1], [13,1], [14,0]) 我想做的是 for i in array2: if array2[:,1] == 1: array1[:,1] = array2[:,1] 但这给了我一个错误 ValueError:包含多个元素的数组的真值不明确。使用a.any()或a.all() 因此,理论上

我试图循环遍历数组的第二列,找出==1的每个值,然后将第一列中的对应值存储到新数组中

array1 = []
array2 = ([10,0], [11,0], [12,1], [13,1], [14,0])
我想做的是

for i in array2:
    if array2[:,1] == 1:
        array1[:,1] = array2[:,1]
但这给了我一个错误

ValueError:包含多个元素的数组的真值不明确。使用a.any()或a.all()

因此,理论上,我应该得到如下结果:

array1 = [12, 13]
我成功地获得了与以下内容匹配的索引值,但无法为列找到它

array1 = np.array([i for i, row in enumerate(array2[:,1]) if row ==1])

首先,你的问题是非常误导的,因为你没有提到NumPy,但这是你所使用的基于错误消息

让我们从实际使用的类型的示例输入开始,它是一个NumPy数组:

array2 = np.array([[10,0], [11,0], [12,1], [13,1], [14,0]])
然后,解决方案是:

array2[array2[:,1] == 1, 0]
这使得:

array([12, 13])

使用NumPy数组时,应始终避免使用
for
循环。在数据上循环速度很慢,以矢量形式进行循环速度很快。

首先,您的问题极易误导,因为您没有提到NumPy,但这正是基于您收到的错误消息而使用的

让我们从实际使用的类型的示例输入开始,它是一个NumPy数组:

array2 = np.array([[10,0], [11,0], [12,1], [13,1], [14,0]])
然后,解决方案是:

array2[array2[:,1] == 1, 0]
这使得:

array([12, 13])

使用NumPy数组时,应始终避免使用
for
循环。在数据上循环很慢,以向量形式进行循环很快。

我认为问题在于数组2[:,1]==1。尝试打印
array2[:,1]
,您会发现它是一个数组,而不是标量。我想你想做的是
if-array2[I,1]==1
你在哪里使用
I
我想问题是
if-array2[:,1]==1
。尝试打印
array2[:,1]
,您会发现它是一个数组,而不是标量。我想你想做的是
if array2[I,1]==1
在这里你使用
I