如何在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数组中的数字的主要内容,如果未能解决你的问题,请参考以下文章