我想創建 m 個矩陣,每個矩陣都是一個 nx 1 numpy 陣列。此外,這些矩陣在兩行中應該只有兩個非零條目,所有其他行應該有 0 作為它們的條目,這意味著矩陣編號 m=1 應該有條目 m[0,:]=m[1,:]=1,其余元素為 0。類似地,最后一個矩陣 m=m 應具有類似 m[n-1,:]=m[n,:]=1 的條目,其中其他行中的其余元素為 0。因此對于連續兩個矩陣,非零元素移動兩行。最后,我希望將它們存盤到字典或檔案中。
什么是一個巧妙的方法來做到這一點?
uj5u.com熱心網友回復:
這是你要找的嗎?
In [2]: num_rows = 10 # should be divisible by 2
In [3]: np.repeat(np.eye(num_rows // 2), 2, axis=0)
Out[3]:
array([[1., 0., 0., 0., 0.],
[1., 0., 0., 0., 0.],
[0., 1., 0., 0., 0.],
[0., 1., 0., 0., 0.],
[0., 0., 1., 0., 0.],
[0., 0., 1., 0., 0.],
[0., 0., 0., 1., 0.],
[0., 0., 0., 1., 0.],
[0., 0., 0., 0., 1.],
[0., 0., 0., 0., 1.]])
就檔案中的存盤而言,您可以使用np.save和np.load。
請注意,默認資料型別np.eye將為float64. 如果您希望在開始集成或計劃對狀態向量執行任何操作時您的值很小,我建議您適當地設定資料型別(例如np.uint8正整數 < 256)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/494403.html
下一篇:基于現有資料框創建新資料框
