在我的程序中,我想要一个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)
答案 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)
答案 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