Как найти число в массиве Numpy в Python - PullRequest
0 голосов
/ 14 марта 2019

В моей программе я хочу иметь одномерный массив, преобразовать его в двумерный массив, снова преобразовать обратно в одномерный массив, и я хочу найти значение в конечном массиве. Чтобы изменить массив 1D на 2D, я использовал numpy. Я использовал функцию where () для поиска в массиве, и в итоге получаю следующий вывод:

(массив ([4], dtype = int32),)

Я получаю этот результат, но мне нужен только его индекс, 4 в случае. Есть ли способ, которым я могу получить только числовой результат функции where (), или есть альтернативный способ, который позволяет мне выполнять преобразования 1D в 2D и 2D в 1D без использования numpy?

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 ]

2 голосов
/ 14 марта 2019

Без версии:

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 голосов
/ 14 марта 2019

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

с 1-го по 2-й

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-го по 1-й: Как сделать плоский список из спискасписки?

1 голос
/ 14 марта 2019
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])
1 голос
/ 14 марта 2019

В вашем случае

print(d[0][0])

даст вам индекс в виде целого числа. Но если вы хотите использовать любые другие методы, я рекомендую проверить Существует ли функция NumPy, которая возвращает первый индекс чего-либо в массиве?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...