追加 numpy 一维数组不会导致矩阵
Append numpy one dimensional arrays does not lead to a matrix
我试图通过随机生成它的行并附加
来获得一个二维数组
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))
但我没有得到我想要的,而是得到一个一维数组。
怎么了?
转置 x 也无济于事。
您可以使用 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, 2) 以获得实际的行向量。
当然,创建所需最终形状的数组比逐行追加容易得多:
my_nums = np.random.rand(100, 2)
我试图通过随机生成它的行并附加
来获得一个二维数组 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))
但我没有得到我想要的,而是得到一个一维数组。
怎么了? 转置 x 也无济于事。
您可以使用 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, 2) 以获得实际的行向量。
当然,创建所需最终形状的数组比逐行追加容易得多:
my_nums = np.random.rand(100, 2)