###前提・実現したいこと
以下のようなnumpy行列を要素に持つlistを考えたとき
list内の行列に対して、行列の特定の2つの行の入れ替えを行うプログラムを作ろうと思っています。
行列のみの場合、numpy.copyで該当の2か所の値を保存して、代入することで入れ替えができたのですが、
listに含まれる行列の場合、numpy.copyで異なるもの(アドレスか何か)が保存され、代入の際に
TypeErrorが返ってきてしまいました。
このような場合、行列の特定の2つの列の入れ替えを行う関数や方法等がありましたら教えていただきたいです。
list[ array[[]] ,…, array[[]] ]
array=[[1,2],[3,4],[5,6]]
###発生している問題・エラーメッセージ
list1[0][0] = pool TypeError: long() argument must be a string or a number, not 'builtin_function_or_method'
###該当のソースコード
python
1import numpy as np 2x = np.random.randint(0, 10, size=(3,2)) 3y = np.random.randint(0, 10, size=(3,2)) 4list1 = [x,y] 5pool = list1[0][1].copy #修正箇所 6pool2 = list1[0][0].copy #修正箇所 7list1[0][0] = pool 8list1[0][1] = pool2
###修正箇所
ご指摘ありがとうございます。
.copyを記載し忘れておりました。
該当コード5,6行目が上のようになります。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー