Неправильная форма двумерного массива - PullRequest
0 голосов
/ 30 августа 2018

Я хочу создать массив 5x5. Декларация выглядит так:

aa = np.array([[2.82842712, 2.23606798, 2.0, 2.23606798, 2.82842712],
               [2.23606798, 1.41421356, 1.0, 1.41421356, 2.23606789],
               [2.0,        1.0,        0.0, 1.0,        2.0],
               [2.23606789, 1,41421356, 1.0, 1.41421356, 2.23606789],
               [2.82842712, 2.23606789, 2.0, 2.23606798, 2.82842712]])

но когда я проверяю, его размер 5x1.

Напечатано в консольном массиве выглядит так:

MATRICE aa:
[[2.82842712, 2.23606798, 2.0, 2.23606798, 2.82842712]
 [2.23606798, 1.41421356, 1.0, 1.41421356, 2.23606789]
 [2.0, 1.0, 0.0, 1.0, 2.0]
 [2.23606789, 1, 41421356, 1.0, 1.41421356, 2.23606789]
 [2.82842712, 2.23606789, 2.0, 2.23606798, 2.82842712]]
Shape: (5,)

Кто-нибудь видит, где я не прав?

1 Ответ

0 голосов
/ 30 августа 2018

У вас есть шесть элементов в 4-й строке, [2.23606789, 1, 41421356, 1.0, 1.41421356, 2.23606789] при условии, 1.41421356 изменить на это:

import numpy as np

aa = np.array([[2.82842712, 2.23606798, 2.0, 2.23606798, 2.82842712],
               [2.23606798, 1.41421356, 1.0, 1.41421356, 2.23606789],
               [2.0,        1.0,        0.0, 1.0,        2.0],
               [2.23606789, 1.41421356, 1.0, 1.41421356, 2.23606789],
               [2.82842712, 2.23606789, 2.0, 2.23606798, 2.82842712]])



print(aa.shape)

выход

(5, 5)

Как упомянул @FHTMitchell, numpy только автоматически преобразует прямоугольные матрицы.

...