[解決済み】ValueError: 配列の要素をシーケンスで設定する
質問
このPythonのコードは。
import numpy as p
def firstfunction():
UnFilteredDuringExSummaryOfMeansArray = []
MeanOutputHeader=['TestID','ConditionName','FilterType','RRMean','HRMean',
'dZdtMaxVoltageMean','BZMean','ZXMean','LVETMean','Z0Mean',
'StrokeVolumeMean','CardiacOutputMean','VelocityIndexMean']
dataMatrix = BeatByBeatMatrixOfMatrices[column]
roughTrimmedMatrix = p.array(dataMatrix[1:,1:17])
trimmedMatrix = p.array(roughTrimmedMatrix,dtype=p.float64) #ERROR THROWN HERE
myMeans = p.mean(trimmedMatrix,axis=0,dtype=p.float64)
conditionMeansArray = [TestID,testCondition,'UnfilteredBefore',myMeans[3], myMeans[4],
myMeans[6], myMeans[9], myMeans[10], myMeans[11], myMeans[12],
myMeans[13], myMeans[14], myMeans[15]]
UnFilteredDuringExSummaryOfMeansArray.append(conditionMeansArray)
secondfunction(UnFilteredDuringExSummaryOfMeansArray)
return
def secondfunction(UnFilteredDuringExSummaryOfMeansArray):
RRDuringArray = p.array(UnFilteredDuringExSummaryOfMeansArray,dtype=p.float64)[1:,3]
return
firstfunction()
このエラーメッセージを投げます。
File "mypath\mypythonscript.py", line 3484, in secondfunction
RRDuringArray = p.array(UnFilteredDuringExSummaryOfMeansArray,dtype=p.float64)[1:,3]
ValueError: setting an array element with a sequence.
どなたか、上記の壊れたコードの問題を解決して、エラーメッセージを投げなくする方法を教えていただけませんか?
EDITです。 行列の内容を取得するためにprintコマンドを実行したところ、このように出力されました。
UnFilteredDuringExSummaryOfMeansArrayは。
[['TestID', 'ConditionName', 'FilterType', 'RRMean', 'HRMean', 'dZdtMaxVoltageMean', 'BZMean', 'ZXMean', 'LVETMean', 'Z0Mean', 'StrokeVolumeMean', 'CardiacOutputMean', 'VelocityIndexMean'],
[u'HF101710', 'PreEx10SecondsBEFORE', 'UnfilteredBefore', 0.90670000000000006, 66.257731979420001, 1.8305673000000002, 0.11750000000000001, 0.15120546389880002, 0.26870546389879996, 27.628261216480002, 86.944190346160013, 5.767261352345999, 0.066259118585869997],
[u'HF101710', '25W10SecondsBEFORE', 'UnfilteredBefore', 0.68478571428571422, 87.727887206978565, 2.2965444125714285, 0.099642857142857144, 0.14952476549885715, 0.24916762264164286, 27.010483303721429, 103.5237336525, 9.0682762747642869, 0.085022572648242867],
[u'HF101710', '50W10SecondsBEFORE', 'UnfilteredBefore', 0.54188235294117659, 110.74841107829413, 2.6719262705882354, 0.077705882352917643, 0.15051306356552943, 0.2282189459185294, 26.768787504858825, 111.22827075238826, 12.329456404418824, 0.099814258468417641],
[u'HF101710', '75W10SecondsBEFORE', 'UnfilteredBefore', 0.4561904761904762, 131.52996981880955, 3.1818159523809522, 0.074714285714290493, 0.13459344175047619, 0.20930772746485715, 26.391156337028569, 123.27387909873812, 16.214243779323812, 0.1205685359981619]]
5行×13列の行列のように見えますが、異なるデータをスクリプトで実行すると、行の数は変化します。 これと同じデータを追加しているところです。
EDIT 2 : しかし、スクリプトはエラーを投げています。 ですから、あなたのアイデアは、ここで起こっている問題を説明しているとは思えません。 でも、ありがとうございます。 他のアイデアはありますか?
EDIT 3:
参考までに、この問題行のコードを置き換えると。
RRDuringArray = p.array(UnFilteredDuringExSummaryOfMeansArray,dtype=p.float64)[1:,3]
を、代わりにこうします。
RRDuringArray = p.array(UnFilteredDuringExSummaryOfMeansArray)[1:,3]
すると、スクリプトのその部分はエラーを出さずにうまく動作するのですが、さらにその下にあるこのコード行が表示されます。
p.ylim(.5*RRDuringArray.min(),1.5*RRDuringArray.max())
このエラーを投げます。
File "mypath\mypythonscript.py", line 3631, in CreateSummaryGraphics
p.ylim(.5*RRDuringArray.min(),1.5*RRDuringArray.max())
TypeError: cannot perform reduce with flexible type
matplotlib で ylim を使えるようにするためにはデータ型を指定する必要がありますが、データ型を指定してもこの投稿のきっかけとなるエラーメッセージが投げられます。
どうすればいいですか?
あなたが示したコードからわかることは、多次元配列のような形をしていないリストから配列を作成しようとしていることです。 例えば
numpy.array([[1,2], [2, 3, 4]]) # wrong!
または
numpy.array([[1,2], [2, [3, 4]]]) # wrong!
これは、入力リストの形状が多次元配列に変換できる(一般化された)"box" ではないからです。 したがって、おそらく
UnFilteredDuringExSummaryOfMeansArray
には、長さの異なる配列が含まれています。
このエラーメッセージが表示されるもう一つの可能性は、文字列を
float
:
numpy.array([1.2, "abc"], dtype=float) # wrong!
あなたの編集によると、それはあなたが試みていることです。 もし、本当に文字列と浮動小数点数の両方を含むNumPyの配列を持ちたいのであれば、dtypeの
object
これは、配列に任意の Python オブジェクトを格納することを可能にします。
numpy.array([1.2, "abc"], dtype=object)
あなたのコードが何を達成しようとしているのか分からないと、これがあなたが望むものなのかどうか、私には分かりません。
関連
-
python implement mysql add delete check change サンプルコード
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] オブジェクトが配列であるかどうかを確認するにはどうすればよいですか?[重複]。
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】配列に何かを追加する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピロウズ画像色処理の具体的な活用方法
-
opencvとpillowを用いた顔認証システム(デモあり)
-
pythonを使ったオフィス自動化コード例
-
PythonはWordの読み書きの変更操作を実装している
-
Python百行で韓服サークルの画像クロールを実現する
-
Python Pillow Image.save jpg画像圧縮問題
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み] リストのリストからフラットなリストを作るには?