1
cvxpy
を使用して最適化の問題を解決しています。出力をmatrix
としてndarray
に保存したいと思います。NumPy行列をNumPy配列にコピー
これはテストケースの縮小です。 a
はcvxpy
の戻り値を表します。
import numpy as np
z = np.zeros((3,7))
a = np.matrix("[1; 2; 3]")
z[0, 0] = a[0]
z[1, 0] = a[1]
z[2, 0] = a[2]
最後の3行をより良いものに置き換えたいのですが、試してみるとすべてエラーになります。たとえば、
>>> z[:, 0] = a
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: could not broadcast input array from shape (3,1) into shape (3)
>>> np.copyto(z[:, 0], a)
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: could not broadcast input array from shape (3,1) into shape (3)
少し助けていただければ幸いです。ありがとうございました。
一つの簡単な方法は、z
にインデックスを作成する列インデックスのリストを使用して、単純にそこnumpyの行列
a
を割り当てることであろう
'a.A1'はここでうまくいくかもしれません。私。 2次元行列を1次元配列に変換します。 – hpaulj
@hpauljあなたは '.A1'のことを大好きですね。 :) – Divakar
@hpaulj私は 'a.A1'、そのような素晴らしい構文的な砂糖について知りませんでした:P –