当前位置: 首页 > 面试题库 >

向空NumPy数组追加失败

许俊雅
2023-03-14
问题内容

我正在尝试使用附加值填充一个空的(不是np.empty!)数组,但我却报错:

我的代码如下:

import numpy as np
result=np.asarray([np.asarray([]),np.asarray([])])
result[0]=np.append([result[0]],[1,2])

我得到:

ValueError: could not broadcast input array from shape (2) into shape (0)

问题答案:

numpy.appendlist.append在python中非常不同。我知道这是numpy的一些新程序员所引发的。numpy.append更像是连接,它创建一个新数组,并用旧数组中的值和要附加的新值填充它。例如:

import numpy

old = numpy.array([1, 2, 3, 4])
new = numpy.append(old, 5)
print old
# [1, 2, 3, 4]
print new
# [1, 2, 3, 4, 5]
new = numpy.append(new, [6, 7])
print new
# [1, 2, 3, 4, 5, 6, 7]

我认为您可以通过执行以下操作来实现目标:

result = numpy.zeros((10,))
result[0:2] = [1, 2]

# Or
result = numpy.zeros((10, 2))
result[0, :] = [1, 2]

更新:

如果需要使用循环创建一个numpy数组,并且您不提前知道数组的最终大小,则可以执行以下操作:

import numpy as np

a = np.array([0., 1.])
b = np.array([2., 3.])

temp = []
while True:
    rnd = random.randint(0, 100)
    if rnd > 50:
        temp.append(a)
    else:
        temp.append(b)
    if rnd == 0:
         break

 result = np.array(temp)

在我的示例中,结果将是一个(N,2)数组,其中N是循环运行的次数,但是显然您可以根据需要进行调整。

新的更新

您看到的错误与类型无关,它与您要连接的numpy数组的形状有关。如果你np.append(a, b)
的形状ab需求相匹配。如果附加(2,n)和(n,),则会得到(3,n)数组。您的代码试图将(1,0)附加到(2,)。这些形状不匹配,因此会出现错误。



 类似资料:
  • 问题内容: 是否可以保存一个numpy数组,将其附加到已经存在的npy文件中—类似于? 我有几个函数必须遍历大型数组的行。由于内存限制,我无法立即创建数组。为了避免一遍又一遍地创建行,我想创建每行一次并将其保存到文件中,然后将其追加到文件的上一行中。稍后,我可以在mmap_mode中加载npy文件,并在需要时访问切片。 问题答案: 内置文件格式非常适合处理小型数据集,而无需依赖外部模块。 但是,当

  • 问题内容: 如何在JavaScript中将对象(例如字符串或数字)附加到数组? 问题答案: 使用该方法将值附加到数组: 您可以使用该函数在单个调用中将多个值附加到数组中: 更新资料 如果要将一个数组的项目添加到另一个数组,则可以使用: 更新资料 如果您想将任何值附加到数组的开头(这意味着第一个索引),则可以添加此答案,您可以为此目的使用它。 它也支持一次附加多个值。

  • 问题内容: 我正在尝试编写一个脚本,该脚本会将新的用户记录追加到ElasticSearch,如果该用户已经存在,则更新任何信息,如果新对象中存在更新的PaymentInfo对象,则将其添加到用户的Payments数组中。这是到目前为止我正在使用的简化版本: 这几乎可以满足我的要求,因为它可以正确地插入文档,或者如果用户具有相同的ID,则可以更新文档,但是如果该用户已经存在,则缺少将这个Paymen

  • 本文向大家介绍numpy向空的二维数组中添加元素的方法,包括了numpy向空的二维数组中添加元素的方法的使用技巧和注意事项,需要的朋友参考一下 直接上代码了 这样就添加了两行4列的数据了。注意append里面是两层括号,这个非常重要,如果漏掉了就不是二维数组了,用axis的时候就会报维度不匹配。 以上这篇numpy向空的二维数组中添加元素的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,

  • 本文向大家介绍Numpy将二维数组添加到空数组的实现,包括了Numpy将二维数组添加到空数组的实现的使用技巧和注意事项,需要的朋友参考一下 使用append函数将一个二维数组添加到一个空数组,关键是维度要对的上 以上这篇Numpy将二维数组添加到空数组的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: numpy中最简单的方法来反转数组的最内部值是这样的: 这样我得到以下结果: 非常感谢你! 问题答案: 怎么样: 而最后一个维度的反方向是: 要么 尽管我更喜欢后者,因为前两个维度是隐式的,因此很难看到正在发生的事情。