Python 在数组中追加将生成一个列表

Python 在数组中追加将生成一个列表,python,arrays,append,Python,Arrays,Append,我有以下代码 points=candies K=5 centers = [] for i in range(K): centers.append(random.choice(points)) centers 这基本上是一个数组列表 [array([0.6 , 0.92, 0.29]), array([0.99, 0.23, 0.45]), array([0.65, 0.6 , 0.03]), array([0.21, 0.22, 0.55]), array([0.62, 0.84,

我有以下代码

points=candies
K=5
centers = []
for i in range(K):
  centers.append(random.choice(points))
centers
这基本上是一个数组列表

[array([0.6 , 0.92, 0.29]),
 array([0.99, 0.23, 0.45]),
 array([0.65, 0.6 , 0.03]),
 array([0.21, 0.22, 0.55]),
 array([0.62, 0.84, 0.83])]
我想要的是一个像

array[[0.6 , 0.92, 0.29],
[0.99, 0.23, 0.45],
[0.65, 0.6 , 0.03],
[0.21, 0.22, 0.55],
[0.62, 0.84, 0.83]]

我必须更改什么?

将阵列列表转换为二维阵列:

np.array(centers)
或者直接从空数组开始并填充它:

centers = np.empty((K,3))
for i in range(K):
  centers[i] = random.choice(points)

将centers数据类型更改为point的数据类型,即numpy数组。我对python非常陌生,我一直认为我不必初始化数组,是不是错了?在numpy中,你必须这样做。出于好奇,你能用append产生同样的结果吗?如果我使用np.arraycenters,centers.append将不起作用anymore@GerardJúlio numpy.ndarray对象与内置列表对象不同。前者本质上是对基本的固定大小数组的面向对象包装,实现了多维数组接口。后者是异构的,类似于序列的容器,可以动态调整大小。你会混淆数组和列表。附加到阵列既昂贵又低效。当您知道数组形状并且确实知道时,请提前声明它。