Матрицы numpy для массива



Я использую numpy. У меня есть матрица с 1 столбцом и N строками, и я хочу получить массив из N элементов.



например, если у меня есть M = matrix([[1], [2], [3], [4]]), Я хочу A = array([1,2,3,4]).



чтобы достичь этого, я использую A = np.array(M.T)[0]. Кто-нибудь знает более элегантный способ получить тот же результат?



спасибо!

609   8  

8 ответов:

Если вы хотите что-то более читаемое, вы можете сделать это:

A = np.squeeze(np.asarray(M))

эквивалентно, вы также можете сделать:A = np.asarray(M).reshape(-1), но это немного менее удобно читать.

A, = np.array(M.T)

зависит от того, что вы подразумеваете под элегантностью я полагаю, но это то, что я бы сделал

или вы можете попытаться избежать некоторых темпов с

A = M.view(np.ndarray)
A.shape = -1

вы можете попробовать следующий вариант:

result=np.array(M).flatten()
np.array(M).ravel()

Если вы заботитесь о скорости; но если вы заботитесь о памяти:

np.asarray(M).ravel()

первый, Mv = numpy.asarray(M.T), Что дает вам 4x1, но 2D массив.

затем выполните A = Mv[0,:], который дает вам то, что вы хотите. Вы могли бы собрать их вместе, как numpy.asarray(M.T)[0,:].

это преобразует матрицу в массив

A = np.ravel(M).T

Comments

    Ничего не найдено.