私はこれを探していましたが、助けになったものは何も見つかりませんでした。私は、私が望むサイズの配列を作るのにいくつか問題があります。リストのリストをPythonの配列に変換する
これまでのところ、私はこのコードのリストのリストを作成しました:
n=4
def matrixA(k):
A=[]
for m in range(0,k):
row=[]
#A.append([])
for n in range(0,k):
if (n==(m+1)) or (n==(m-1)):
row.append(-deltaX/(deltaX)**2)
if (n==m):
row.append(2*deltaX/(deltaX)**2)
else:
row.append(0)
A.append(row)
return A
pprint.pprint(matrixA(n))
print len(matrixA(n))
私はこの出力を取得します。
[[128.0, -64.0, 0, 0, 0],
[-64.0, 0, 128.0, -64.0, 0, 0],
[0, -64.0, 0, 128.0, -64.0, 0],
[0, 0, -64.0, 0, 128.0]]
4
ここでは、これをサイズ(4,4)の配列にしたいと考えています。私の問題は、私は(配列にリストを変換し、それを形作るしようとしている)次の手順を実行したときにということである。
A=numpy.array(matrixA(n))
print A
print "This is its shape:",A.shape
A.shape=(n,n)
私が取得:
[[128.0, -64.0, 0, 0, 0] [-64.0, 0, 128.0, -64.0, 0, 0]
[0, -64.0, 0, 128.0, -64.0, 0] [0, 0, -64.0, 0, 128.0]]
This is its shape: (4,)
そしてエラー:
ValueError: total size of new array must be unchanged
ここから、サイズ(4,4)の配列をどうやって取得するのですか?配列にネストされたリストの変換
リストには5つまたは6つの要素がありますが、どのように4×4配列にする予定ですか?また、リスト内の要素数が異なるため、 'numpy'は2D配列を作成せず、代わりに' dtype = object'の1D配列をリストで作成します。 – fjarri
うわー、私はそれを気付かなかったとは信じられません。なぜここに5人ではなく5人か6人いるのか分かりますか?(私は5よりもむしろ4にしたいので、それを指摘して以来、kからk-1までの範囲を変更しました) –
ループ内の2番目の 'if'は' elif '。現在、 'it''をある回の繰り返しで' 'row''に2回追加します。また、あなたはあなたがそれを望むかどうかわからない、 'n'を上書きしています。 – fjarri