Матрицы numpy для массива
Я использую numpy. У меня есть матрица с 1 столбцом и N строками, и я хочу получить массив из N элементов.
например, если у меня есть M = matrix([[1], [2], [3], [4]]), Я хочу A = array([1,2,3,4]).
чтобы достичь этого, я использую A = np.array(M.T)[0]. Кто-нибудь знает более элегантный способ получить тот же результат?
спасибо!
8 ответов:
Если вы хотите что-то более читаемое, вы можете сделать это:
A = np.squeeze(np.asarray(M))эквивалентно, вы также можете сделать:
A = np.asarray(M).reshape(-1), но это немного менее удобно читать.
result = M.A1https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.matrix.A1.html
matrix.A1 1-d base array
A, = np.array(M.T)зависит от того, что вы подразумеваете под элегантностью я полагаю, но это то, что я бы сделал
np.array(M).ravel()Если вы заботитесь о скорости; но если вы заботитесь о памяти:
np.asarray(M).ravel()
первый,
Mv = numpy.asarray(M.T), Что дает вам 4x1, но 2D массив.затем выполните
A = Mv[0,:], который дает вам то, что вы хотите. Вы могли бы собрать их вместе, какnumpy.asarray(M.T)[0,:].
Comments