Pythonコードの問題 ---行列は2次元でなければならない 問題は解決されました。
2022-03-01 03:45:06
1. 問題発見
今日、ポアソン分布に従う乱数を扱っていて、ある問題にぶつかった。
まず、3*4次行列をループで直接生成したところ、すべての数値が平均値5のポアソン分布に従った。コードは以下の通りです。
x = []
d=4# matrix columns for d d days
z=3# matrix rows for z z collection points
for i in range(0, z): # number of matrix rows is z
# all rows have λ of 5
x.append(np.random.poisson(lam=5, size=d)) # lam is λ size is k
# print(x[i])
# print(x)
a = np.mat(x)
print('a=', a)
print(x.shape)
print(a.shape)
結果を取得します。
xが配列型ではなくリスト型になっているため、エラーが発生することがわかります。
を設定したときに発生するエラーです。
print(x.shape)
をコメントアウトして、普通に実行します。
a が次数 3*4 の行列であることがわかる。
しかし、平均値の異なる3行の配列を生成したい場合、最初のコードは次のようになります。
x1.append(np.random.poisson(lam=5, size=d)) # lam is λ size is k
x2.append(np.random.poisson(lam=40, size=d))
x3.append(np.random.poisson(lam=10, size=d))
print(x1,x2,x3)
これは、以前のフォーマットとは異なる結果をもたらします。
この3つで行列を作りたい場合。
x1.append(np.random.poisson(lam=5, size=d)) # lam is λ size is k
x2.append(np.random.poisson(lam=40, size=d))
x3.append(np.random.poisson(lam=10, size=d))
print(x1,x2,x3)
a = np.mat((x1,x2,x3))#generate matrix
print('a=', a)
すると、ValueError: matrix must be 2-dimensional(行列は2次元でなければならない。
プラス
print(x1.shape)
が、まだエラーが報告されます。AttributeError: 'list' オブジェクトには 'shape' という属性がありません。
2. 問題解決
上記のコードのセクションを次のように置き換えます。
x1=np.random.poisson(lam=5, size=d) # lam is λ size is k
x2=np.random.poisson(lam=40, size=d)
x3=np.random.poisson(lam=10, size=d)
その後、以下のように正常に動作しています。
つまり、行列の3行はそれぞれ異なる期待値を持つポアソン分布に従います
30分の投げっぱなし
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例