您好,我有一個問題,其中存在像這樣的線性像素串列:
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
131 131 131 134 134 134 137 137 137 139 139 139 141 141]
我想把它轉換成:
[[[ 0 0 0]
[ 0 0 0]
[ 0 0 0]
...
[145 145 145]
[148 148 148]
[149 149 149]]
就像普通的 numpy 影像陣列一樣。
感謝您的幫助。
uj5u.com熱心網友回復:
numpy重塑是你正在尋找的。https://numpy.org/doc/stable/reference/generated/numpy.reshape.html
但是請注意,當您重塑numpy陣列時,新形狀必須包含與輸入陣列相同數量的元素:
import numpy as np
a = np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
131, 131, 131, 134, 134, 134, 137, 137, 137, 139, 139, 139, 141, 141])
print(a.reshape((10, 5)))
因此,在您的示例中,您無法將50元素陣列轉換為3xm矩陣。
uj5u.com熱心網友回復:
將 numpy.reshape() 與 -1 一起使用,numpy 將嘗試自行設定第一維。
>>> import numpy
>>> a = numpy.arange(6)
>>> a
array([0, 1, 2, 3, 4, 5])
>>> a.reshape((-1,3))
array([[0, 1, 2],
[3, 4, 5]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/346640.html
