Матрица для преобразования в массив

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

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

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

Благодаря!

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

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

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

 A, = np.array(MT) 

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

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

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

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

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

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

 np.asarray(M).ravel() 

Хороший способ, который позволит выбрать соглашение, которое вы предпочитаете (майор строки, col major …)

 A = M.flatten() 

Проверьте документацию, чтобы просмотреть параметры

Во-первых, Mv = numpy.asarray(MT) , который дает вам 4×1, но 2D-массив.

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

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

 A = np.ravel(M).T