如何在Python中的Numpy数组中搜索数字

时间:2019-03-14 17:56:36

标签: python arrays numpy multidimensional-array

在我的程序中,我想要一个1D数组,将其转换为2D数组,再次将其转换回1D数组,我想在最终数组中搜索一个值。为了将1D数组更改为2D,我使用了numpy。我使用where()函数来搜索数组,最后得到以下输出:

(array([4],dtype = int32),)

我得到了这个结果,但是我只需要它的索引,以防万一。有没有一种方法只能获取where()函数的数值结果,还是有另一种方法可以让我在不使用numpy的情况下进行1D到2D和2D到1D的转换?

import numpy as np

a = [1,2,3,4,5,6,7,8,9];
print(a)
b = np.reshape(a,(3,3))
print(b)
c = b.ravel()
print(c)
d = np.where(c==5)
print(d)

4 个答案:

答案 0 :(得分:2)

...is there an alternative way which allows me to do 1D to 2D and 2D to 1D conversions without using numpy?

1-d到2-d

b = [1,2,3,4,5,6,7,8,9]
ncols = 3
new = []
for i,n in enumerate(b):
    if i % ncols == 0:
        z = []
        new.append(z)
    z.append(n)

2-d到1-d:How to make a flat list out of list of lists?

答案 1 :(得分:2)

没有Numpy版本:

from itertools import chain

a = list(range(1, 10))
b = list(zip(*3*(iter(a),)))
c = list(chain.from_iterable(b))
d = c.index(5)

答案 2 :(得分:1)

以您的情况

print(d[0][0])

将为您提供整数索引。但是,如果您要使用其他方法,建议您检查Is there a NumPy function to return the first index of something in an array?

答案 3 :(得分:1)

/run/secrets/GS_PRIVATE_KEY