Преобразование списка в массив для использования функции ravel ()

109

У меня есть список на Python, и я хочу преобразовать его в массив, чтобы иметь возможность использовать ravel()функцию.

user2229953
источник
2
Пожалуйста, постарайтесь ответить на запросы о разъяснениях и улучшить свои вопросы вместо того, чтобы порождать множество не очень хороших вопросов. Наконец, прочтите внимательно этот ответ . Я думаю, это решит вашу большую проблему ...
Хорхека

Ответы:

237

Использование numpy.asarray:

import numpy as np
myarray = np.asarray(mylist)
А. Родас
источник
25
Собственно, myarray = np.array(mylist)должно хватить.
fgb 07
11
ну, asarray безопаснее, так как он не копирует массивы, а просто возвращает их, так что это хорошая привычка использовать его, если только он не уверен, что у него будет копия исходных данных
EnricoGiampieri
1
@EnricoGiampieri, честно, но разве вам не нужно вытаскивать из этого массив, несмотря ни на что? Думаю, я не понимаю, как вы не получите ни одну из команд для создания нового объекта массива.
fgb 07
Команда both создаст новый массив, начиная со списка, это точно, но часто дело в том, чтобы преобразовать ввод в определенный формат для применения определенного метода, и это больше похоже на случай OP. использование asarray - хорошая привычка, если только вы не уверены, что нужна новая копия. простого набора текста arrayдостаточно, но зачем упускать возможность обучить ОП какой-то хорошей привычке, пока мы здесь?
EnricoGiampieri
Я просто хотел сказать, что @fgb предложил адекватное решение. функция .asarray возвращает объект numpy, тогда как .array возвращает вам массив напрямую. В любом случае, спасибо вам обоим, ребята!
Adrian Grzywaczewski
7

создать массив int и список

from array import array
listA = list(range(0,50))
for item in listA:
    print(item)
arrayA = array("i", listA)
for item in arrayA:
    print(item)
Ушкай Аттила
источник
что означает "i"? а что это должно быть для str?
Dany Y
6

Мне нужен был способ сделать это без использования дополнительного модуля. Сначала превратите список в строку, затем добавьте в массив:

dataset_list = ''.join(input_list)
dataset_array = []
for item in dataset_list.split(';'): # comma, or other
    dataset_array.append(item)
ОКРУГ КОЛУМБИЯ
источник
Невозможно отредактировать опечатку: первая строка должна бытьdataset_list = ';'.join(input_list)
Alex Poca
2

Если все, что вам нужно, это вызов ravelвашего (вложенного, я полагаю?) Списка, вы можете сделать это напрямую, numpyкастинг выполнит за вас:

L = [[1,None,3],["The", "quick", object]]
np.ravel(L)
# array([1, None, 3, 'The', 'quick', <class 'object'>], dtype=object)

Также стоит упомянуть, что вам совсем не нужно проходить через numpyэто .

Пол Панцер
источник
-1

Используйте следующий код:

import numpy as np

myArray=np.array([1,2,4])  #func used to convert [1,2,3] list into an array
print(myArray)
Vinay
источник
-13

если у переменной b есть список, вы можете просто сделать следующее:

создайте новую переменную «a» как: a=[] затем присвойте список «a» как:a=b

теперь "a" содержит все компоненты списка "b" в массиве.

Итак, вы успешно преобразовали список в массив.

Маянк Шарма
источник
8
На самом деле нет ... это совершенно неправильно. Все, что у вас будет, это две переменные, указывающие на один и тот же список, а не на массив numpy.
Ajean