Numpy Matrix постоянно выдает мне ошибку, - PullRequest
2 голосов
/ 25 марта 2010

Хорошо, это странно, я постоянно получаю сообщение об ошибке.

ValueError: matrix must be 2-dimensional

Итак, я выследил это и загнал в угол что-то вроде этого:

a_list = [[(1,100) for _ in range(32)] for _ in range(32)]
numpy.matrix(a_list)

Что с этим не так? Если я печатаю a_list, то это явно двумерная матрица кортежей, однако numpy не верит в это.

Ответы [ 3 ]

4 голосов
/ 25 марта 2010

Самый простой способ обойти это - использовать массив numpy вместо numpy matrix :

a_list = [[(1,100) for _ in range(32)] for _ in range(32)]
arr=numpy.array(a_list)

Матрицы Numpy строго 2-мерные , а a_list 3-мерные. Таким образом, пустые матрицы не вариант.

1 голос
/ 25 марта 2010

кортежи имеют более одного значения, поэтому они рассматриваются как измерение Итак, вы создаете 3D-матрицу.

0 голосов
/ 25 марта 2010

Что вы пытаетесь сделать? В numpy матрица - это двумерный массив из чисел .

Вы можете создать 32x32x2 "матрицу" с numpy.array(a_list). Вы также можете создать массив кортежей 32x32, используя массивы объектных массивов, но мало что лучше, чем случай 32x32x2 (поскольку вы можете думать о нем как о массиве 32x32 из 2-х элементов).

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