【问题标题】:Storing multiple arrays in a np.zeros or np.ones在 np.zeros 或 np.ones 中存储多个数组
【发布时间】:2022-11-14 05:04:59
【问题描述】:

我正在尝试使用np.zeros(n)dtype=object 初始化一个长度为n 的虚拟数组。我想使用这个虚拟数组来存储另一个长度为m 的数组的n 副本。 我试图避免 for 循环在每个索引处设置值。

我尝试使用下面的代码,但不断收到错误 -

temp = np.zeros(10, dtype=object)
arr = np.array([1.1,1.2,1.3,1.4,1.5])
res = temp * arr

期望的结果应该是 -

np.array([[1.1,1.2,1.3,1.4,1.5], [1.1,1.2,1.3,1.4,1.5], ... 10 copies])

我不断收到错误 -

operands could not be broadcast together with shapes (10,) (5,) 

我知道出现此错误是因为编译器认为我正在尝试乘以这些数组。 那么我该如何完成任务呢?

【问题讨论】:

标签: python numpy-ndarray


【解决方案1】:

np.tile() 是一个内置函数,它重复给定数组 reps 次。看起来这正是您所需要的,即:

res = np.tile(arr, 2)

【讨论】:

    【解决方案2】:
    >>> arr = np.array([1.1,1.2,1.3,1.4,1.5])
    >>> arr
    array([1.1, 1.2, 1.3, 1.4, 1.5])
    >>> np.array([arr]*10)
    
    array([[1.1, 1.2, 1.3, 1.4, 1.5],
            [1.1, 1.2, 1.3, 1.4, 1.5],
            [1.1, 1.2, 1.3, 1.4, 1.5],
            [1.1, 1.2, 1.3, 1.4, 1.5],
            [1.1, 1.2, 1.3, 1.4, 1.5],
            [1.1, 1.2, 1.3, 1.4, 1.5],
            [1.1, 1.2, 1.3, 1.4, 1.5],
            [1.1, 1.2, 1.3, 1.4, 1.5],
            [1.1, 1.2, 1.3, 1.4, 1.5],
            [1.1, 1.2, 1.3, 1.4, 1.5]])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-15
      • 2010-09-08
      • 2016-02-13
      • 1970-01-01
      • 1970-01-01
      • 2017-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多