![](/img/trans.png)
[英]Turning a 6 value 1 dimensional numpy.ndarray into a 6 dimensional
[英]creating a (104,1,10) dimensional numpy.ndarray from 10 different (104,) dimensional numpy.ndarray
我有10個不同的(104,)形狀(一維中有104個元素)numpy ndarray。 我需要將它們全部堆疊在一起以形成(104,1,10)形狀的數組。 預期的輸出是這樣的https://i.imgur.com/HDSBLx5.jpg
我編寫了以下代碼,這當然會給我帶來錯誤,因為“ rulesetArray”維在第一次迭代后不匹配。
valueerror:所有輸入數組必須具有相同的形狀
import numpy as np
rulesetArray=np.zeros((104,1))
listString=['100010001.....','1010101....',,,,,,,,,'100010001.....'] # each element in listString is 104 in length and has 10 elements
for i in listString:
npArray=np.array(list(i),dtype=int) # outputs (104,) size npArray
npArray=npArray.reshape(104,1) # converts npArray to (104,1) shape
rulesetArray= np.stack([rulesetArray,npArray)
我想您正在尋找np.dstack()
。
沿深度方向(沿第三軸)按順序堆疊數組。 dstack文檔
碼:
import numpy as np
a = np.zeros((5, 1))
b = np.ones((5, 1))
print('a:', a, a.shape, 'b:', b, b.shape, sep='\n')
stacked_arr = np.dstack((a, b))
print('stacked:', stacked_arr, stacked_arr.shape, sep='\n')
輸出:
a:
[[0.]
[0.]
[0.]
[0.]
[0.]]
(5, 1)
b:
[[1.]
[1.]
[1.]
[1.]
[1.]]
(5, 1)
stacked:
[[[0. 1.]]
[[0. 1.]]
[[0. 1.]]
[[0. 1.]]
[[0. 1.]]]
(5, 1, 2)
In [116]: alist = [np.arange(10) for _ in range(5)]
In [117]: arr = np.stack(alist, axis=1)
In [118]: arr.shape
Out[118]: (10, 5)
In [119]: arr.reshape(10,1,5)
Out[119]:
array([[[0, 0, 0, 0, 0]],
[[1, 1, 1, 1, 1]],
[[2, 2, 2, 2, 2]],
[[3, 3, 3, 3, 3]],
[[4, 4, 4, 4, 4]],
[[5, 5, 5, 5, 5]],
[[6, 6, 6, 6, 6]],
[[7, 7, 7, 7, 7]],
[[8, 8, 8, 8, 8]],
[[9, 9, 9, 9, 9]]])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.