追加numpy一维数组不会导致矩阵

2024-04-25 16:46:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过随机生成行并附加

   import numpy as np
   my_nums =  np.array([])
    for i in range(100):
      x = np.random.rand(2, 1)
      my_nums = np.append(my_nums, np.array(x))

但我没有得到我想要的,而是得到一个1d数组。你知道吗

怎么了? 调换x也没有帮助。你知道吗


Tags: inimportnumpyformyasnprange
1条回答
网友
1楼 · 发布于 2024-04-25 16:46:44

您可以使用np.append(axis=0)np.vstack来实现这一点。但是,这要求附加的行与数组中已有的行具有相同的长度。你知道吗

不能使用相同的代码将具有两个值的行附加到空数组,也不能将行附加到已存在的二维数组:numpy将抛出 ValueError: all the input arrays must have same number of dimensions。你知道吗

您可以初始化my_nums来解决这个问题:

my_nums = np.random.rand(1, 2)
for i in range(99):
    x = np.random.rand(1, 2)
    my_nums = np.append(my_nums, x, axis=0)

注意由于初始化行,范围减少了1。还要注意,我将维度改为(1,2)以获得实际的行向量。你知道吗

当然,要以所需的最终形状创建数组,比按行追加要容易得多:

my_nums = np.random.rand(100, 2)

相关问题 更多 >