【发布时间】:2020-02-23 01:48:20
【问题描述】:
我正在定义两个 NumPy 数组:
PREtrain_labels = np.asarray([inpLblsArray[0:80]])
train_labels = np.array([])
TRstore = 0
i = 0
while i < len(train_images):
TRstore = np.asarray([PREtrain_labels.item(i)])
np.append(train_labels, TRstore)
i = i + 1
在这里,我有一个 NumPy 数组 PREtrain_labels,它包含整数并且是从一个更大的 NumPy 数组中分割出来的。我定义了一个空数组train_labels。我的目标是用数组PREtrain_labels 中选定的整数切片填充空的 NumPy 数组 (train_labels)。但是有一个问题,当我从PREtrain_labels 数组中取出每个整数时,我希望将每个整数放在另一个名为TRstore 的空数组中。然后,我想将TRstore NumPy 数组放入空的train_labels 数组中。但是,当我运行代码并打印最终的 train_labels 数组时,它是空的。
怎么可能解决这个问题?如果np.append() 是错误的使用方法,我应该使用哪一种?上面的代码不会单独运行,因此,我将下面的代码简化为可运行的版本。提前致谢!
loopArr = np.array([1, 2, 3, 4, 5])
a = np.asarray([1, 2, 3, 4, 5])
target = np.array([])
store = 0
i = 0
while i < len(loopArr):
store = np.asarray([a.item(i)])
np.append(target, store)
i = i + 1
print(target)
【问题讨论】:
-
np.append 不是列表追加克隆!不要使用它!
-
你不能像最初的
train_labels那样在数组中放入任何东西。它是形状 (0,) 和浮动 dtype。通过连接一些东西来创建一个新数组是低效的。坚持使用列表追加。
标签: python python-3.x numpy artificial-intelligence