как преобразовать 2d список в 2d массив numpy?


у меня есть 2D список что-то вроде

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 

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

numpy.zeros((3,3))

а затем хранить значения к нему?

4 61

4 ответа:

просто передайте список в np.array:

a = np.array(a)

вы также можете воспользоваться этой возможностью, чтобы установить dtype Если по умолчанию не то, что вы хотите.

a = np.array(a, dtype=...)

Я использую большие наборы данных, экспортированные в файл python в виде

XVals1 = [.........] 
XVals2 = [.........] 

каждый список одинаковой длины. Я использую

>>> a1 = np.array(SV.XVals1)

>>> a2 = np.array(SV.XVals2)

затем

>>> A = np.matrix([a1,a2])

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

c = np.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
matrix([[1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]])

тогда он даст вам

вы можете проверить форму и размер матрицы, используя следующий код

Си.формы

Си.ndim

np.array() еще более мощным, чем то, что сказал unutbu выше. Вы также можете использовать его для преобразования списка массивов np в массив более высоких размеров, следующий простой пример:

aArray=np.array([1,1,1])

bArray=np.array([2,2,2])

aList=[aArray, bArray]

xArray=np.array(aList)

форма xArray (2,3), это стандартный массив np. Эта операция позволяет избежать программирования цикла.