gpt4 book ai didi

Python:在数组列中查找特定值

转载 作者:太空宇宙 更新时间:2023-11-04 01:14:37 26 4
gpt4 key购买 nike

我有一个特定的整数值 k,我想在二维 numpy 数组的列中找到匹配值(使用“for”循环)。我想我可以使用 if 语句并直接将单个数组元素与整数值 k 进行比较。这是我的代码:

for i in range(mock.shape[0]):

n_cl = int(mock[i,0]/3500.)
zcl = mock[i,5]
pick = [np.random.random_integers(200, size=(n_cl))]
print pick[0]
if(zcl <= 0.05):

for k in range(len(pick)) :

for j in range(z_001.shape[0]):
n = z_001[j,1]
if (int(n) == pick[k]):
binaries[j,7] = mock[i,0]
binaries[j,8] = mock[i,1]
binaries[j,9] = mock[i,2]
binaries[j,10] = mock[i,3]
binaries[j,11] = mock[i,4]

我总是得到一个关于具有多个元素的数组的真值的 ValueError,这是不明确的。我知道问题出在“int(n) == k”,但是我想知道我哪里错了,我怎样才能把事情做得更好,让我的这部分代码工作。

最佳答案

好吧,考虑一下:

  1. 无论何时使用 numpy,您可能都不想使用 for 循环
  2. 您得到的错误意味着您正在将 numpy 数组与单个值进行比较

因此,该问题的一种可能解决方案是:

import numpy as np

# generating some fake data
x = np.repeat([[1,2,3,4]], 4, axis=0)
x[2,2] = 200
x[3,1] = 200

# retrieving the indices where "x==200" using np.where
indices = np.where(x==200)
print indices

给出:

(array([2, 3]), array([2, 1]))

因此您可以使用 indices 索引任何其他数组(具有适当的形状)您将在 indices 位置获得该数组的值。

关于Python:在数组列中查找特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25451524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com