stack的操作既可以對ndarray,又可以對list,但操作後,變數是ndarray.
我們先來驗證對ndarray, 隨機產生乙個list巢狀array,變數名是arrays(type是list),但arrays的每乙個元素都是ndarray。np.stack 操作以後,就是乙個shape是(2,2,3)的ndarray。
import numpy as np
arrays = [np.random.randn(2,3) for _ in range(2)]
print("arrays in list is: ".format(arrays))
>arrays in list is: [array([[ 0.28396971, 0.92718814, -1.4422189 ],
[ 0.36319258, -0.61124134, -1.17067133]]),
array([[ 1.30923184, 0.6940435 , -0.2277809 ],
[-1.02785336, 0.18862084, -1.14111492]])]
print("type of arrays is: ".format(type(arrays)))
> type of arrays is: print("first element of list is array, ".format(type(arrays[0])))
> first element of list is array, stack_arrays = np.stack(arrays,axis=0)
> stack_array is: [[[ 0.28396971 0.92718814 -1.4422189 ]
[ 0.36319258 -0.61124134 -1.17067133]]
[[ 1.30923184 0.6940435 -0.2277809 ]
[-1.02785336 0.18862084 -1.14111492]]]
print("type of stack_arrays is: ".format(type(stack_arrays)))
> type of stack_arrays is: print("shape of arrays_stack is: ".format(stack_arrays.shape))
> shape of arrays_stack is: (2, 2, 3)
然後我們來驗證list中巢狀list,看如下變數list_list, np.stack 對list_list操作後,stack_list的type變成了ndarray.
list_list = [
[[1,3,3],
[2,4,5]],
[[2,3,4],
[4,5,6]]]
print("type of list_list is: ".format(type(list_list)))
> type of list_list is: stack_list = np.stack(list_list,axis=0)
print("stack_list is :".format(stack_list))
> stack_list is :[[[1 3 3]
[2 4 5]]
[[2 3 4]
[4 5 6]]]
print("type of stack_list is: ".format(type(stack_list)))
> type of stack_list is:
Python溫習(十二) Python陣列
計算機通過為陣列項分配一段連續的記憶體單元,從而支援對陣列的隨機訪問。陣列在記憶體中是按順序存放的,可以通過下標直接定位到某乙個元素存放的位置。所以不管陣列多大,它訪問第乙個元素所需的時間和訪問最後乙個元素需要的時間是一樣的。建立陣列 import numpy as np a np.array 2,...
opencv視覺學習溫習(四)
一 基本知識 在影象處理中,最基本的形態學操作有二種,他們是 膨脹與腐蝕 dilation與erosion 其實,膨脹就是求區域性最大值的操作。按數學方面來說,膨脹或者腐蝕操作就是將影象 或影象的一部分區域,我們稱之為a 與核 我們稱之為b 進行卷積。核可以是任何的形狀和大小,它擁有乙個單獨定義出來...
C 快速溫習筆記 高階 4
模板 函式模板 template ret type func name parameter list e.g.template t add t a,t b cout add 3,6 cout add 1.1,2.2 類模板 template classclass name e.g.template ...