#python #arrays #matrix #multidimensional-array
Вопрос:
Я пытаюсь создать матрицу, которая считывает:
[0,1,2]
[3,4,5]
[6,7,8]
Однако мои элементы продолжают повторяться. Как мне это исправить?
import numpy as np
n = 3
X = np.empty(shape=[0, n])
for i in range(3):
for j in range(1,4):
for k in range(1,7):
X = np.append(X, [[(3*i) , ((3*j)-2), ((3*k)-1)]], axis=0)
print(X)
Результаты:
[[ 0. 1. 2.]
[ 0. 1. 5.]
[ 0. 1. 8.]
[ 0. 1. 11.]
[ 0. 1. 14.]
[ 0. 1. 17.]
[ 0. 4. 2.]
[ 0. 4. 5.]
Ответ №1:
Я не совсем уверен, как, по-вашему, должен был работать ваш код. Вы добавляете строку X
в каждом цикле, так что 3 * 3 * 7 раз, так что в итоге вы получите матрицу 54 х 3.
Я думаю, может быть, ты хотел сделать:
for i in range(3):
X = np.append(X, [[3*i , 3*i 1, 3*i 2]], axis=0)
Просто, чтобы вы знали, добавление массива обычно не рекомендуется (просто создайте список списка, а затем сделайте его массивом numpy).
Вы также могли бы сделать
>> np.arange(9).reshape((3,3))
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])