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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Python中搜索Numpy数组中的数字相关的知识,希望对你有一定的参考价值。

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

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

我得到这个结果,但我只需要它的索引,4以防万一。有没有办法让我只能得到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)
答案
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[0][0])
另一答案

...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?

另一答案

没有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)
另一答案

在你的情况下

print(d[0][0])

会给你整数索引。但如果你想使用任何其他方法,我建议检查Is there a NumPy function to return the first index of something in an array?

以上是关于如何在Python中搜索Numpy数组中的数字的主要内容,如果未能解决你的问题,请参考以下文章

在混合python numpy数组中搜索和替换[关闭]

Python/Numpy - 在数组末尾环绕切片

NumPy:Python中的强大数学工具

将 numpy 字符串数组连接到 numpy 数字数组

怎么将python中的数组全部打印出来array

不用循环,python numpy 数组如何对每个元素进行操作?