ndarray数组有严格的对齐要求,要求每个维度的列都要分别相同,若某一维度的数组中某个元素内部的列数和其他元素内部的列数不一致,则该维度为最小维度。
即:在用列表转换为数组的过程中,本来要转换为一个三维数组,但是由于其第二维的某个元素的列数和其他元素的列数不一致,导致最终转换的结果为一维数组
示例:
定义一个3x3的列表,成功转换为一个3x3的数组
import numpy as np
list = [[[1,2,3],[4,5,6],[7,8,9]],[[11,22,33],[44,55,66],[77,88,99]],[[111,222,333],[444,555,666],[777,888,999]]]
array = np.array(list)
print(array)
结果:
[[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]]
[[ 11 22 33]
[ 44 55 66]
[ 77 88 99]]
[[111 222 333]
[444 555 666]
[777 888 999]]]
若由于某些特殊原因导致列表的第二维少了个元素,则最终结果将转换为一维数组,如:
import numpy as np
list = [[[4,5,6],[7,8,9]],[[11,22,33],[44,55,66],[77,88,99]],[[111,222,333],[444,555,666],[777,888,999]]]
array = np.array(list)
print(array)
结果:
[list([[4, 5, 6], [7, 8, 9]])
list([[11, 22, 33], [44, 55, 66], [77, 88, 99]])
list([[111, 222, 333], [444, 555, 666], [777, 888, 999]])]