Kad*_*j13 2 python arrays numpy multidimensional-array python-3.x
所以我创建了这个数组作为例子:
a = np.array([[1, 1, 1, 1, 2], [2, 2, 2, 3], [3, 3, 3, 4], [13, 49, 13, 49], [10, 10, 2, 2],
[11, 1, 1, 1, 2], [22, 2, 2, 3], [33, 3, 3, 4], [133, 49, 13, 49], [100, 10, 2, 2],
[5, 1, 1, 1, 2], [32, 2, 2, 3], [322, 3, 3, 4], [13222, 49, 13, 49], [130, 10, 2, 2]])
Run Code Online (Sandbox Code Playgroud)
我想创建一个二维数组。因此,例如在这种情况下,15*5 数组。
但是,当我使用 时a.shape,它返回(15,)
我的数组定义有什么问题?
Numpy 数组只能在每个轴具有相同数量的元素时定义。否则,您将得到一个一维对象数组。
这就是您的阵列发生的情况。您有一个列表列表,其中包含可变数量的元素(有些是 4 个,有些是 5 个)。这在转换过程(15,)中将它变成一个numpy 数组,其中数组有 15 个单独的列表对象。
a = np.array([[1, 1, 1, 1, 2], [2, 2, 2, 3], [3, 3, 3, 4], [13, 49, 13, 49]
## |______________| |__________|
## | |
## 5 length 4 length
Run Code Online (Sandbox Code Playgroud)
#Variable length sublists
print(np.array([[1,2,3], [4,5]]))
#Fixed length sublists
print(np.array([[1,2,3], [4,5,6]]))
Run Code Online (Sandbox Code Playgroud)
array([list([1, 2, 3]), list([4, 5])], dtype=object) #This is (2,)
array([[1, 2, 3], #This is (2,3)
[4, 5, 6]])
Run Code Online (Sandbox Code Playgroud)