Добавление нового столбца в список матриц (массивов) - PullRequest
1 голос
/ 22 июля 2011

У меня проблема со списками / массивами / матрицей в Python.

У меня есть список матриц (или массивов, если это необходимо), и я хочу добавить к каждому из них новыйстолбец из них (из одинакового количества строк).Как я могу это сделать ??

У меня есть пара вещей, и я не добился успеха.

Спасибо за помощь.

Вот пример:

>>> A=[mat([[1,2,3],[4,5,6],[7,8,9]]),mat([[1,0,0],[0,1,0],[0,0,1]])]
>>> A
[matrix([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]]), matrix([[1, 0, 0],
        [0, 1, 0],
        [0, 0, 1]])]

Используя ответ, который вы, ребята, сказали

>>> A = np.hstack((A, np.ones((A.shape[0],1),dtype=A.type)))

Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    A = np.hstack((A, np.ones((A.shape[0],1),dtype=A.type)))
AttributeError: 'list' object has no attribute 'shape'`

Ответы [ 2 ]

3 голосов
/ 22 июля 2011

Пример для 2D NumPy ndarray:

>>> m = np.arange(12).reshape(3,4)
>>> m = np.hstack((m, np.ones((m.shape[0], 1), dtype=m.dtype)))
>>> m
array([[ 0,  1,  2,  3,  1],
       [ 4,  5,  6,  7,  1],
       [ 8,  9, 10, 11,  1]])

Редактировать: То же самое работает для матрицы. Для списка матриц вы можете использовать цикл for:

>>> matrices = [np.matrix(np.random.randn(3,4)) for i in range(10)]
>>> for i, m in enumerate(matrices):
...     matrices[i] = np.hstack((m, np.ones((m.shape[0], 1), dtype=m.dtype)))
1 голос
/ 22 июля 2011

2d массивы столбцов:

for matrix in matricies:
    matrix.append([1,] * len(matrix[0]))

2d массивы строк:

for matrix in matricies:
    for row in matrix:
        row.append(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...