【问题标题】:Python - replace and insert in arrayPython - 替换并插入数组
【发布时间】:2015-03-22 17:44:30
【问题描述】:

假设我有一个清单:

lst = np.array([1,2,3,4])

我想用[5,6,7] 替换3,所以我得到了

lst = [1,2,5,6,7,4]

我试过了:

lst[2] = [5,6,7]

但这会给我一个错误: setting an array element with a sequence

【问题讨论】:

    标签: python arrays numpy replace insert


    【解决方案1】:

    您不能就地更改 numpy 数组的大小。您需要通过连接其他两个数组的切片来“手动”创建一个适当大小的新 numpy 数组:

    >>> x = np.array([1,2,3,4])
    >>> y = np.concatenate((x[:2], [5, 6, 7], x[3:]))
    >>> y
    array([1, 2, 5, 6, 7, 4])
    

    或者,您可以将数组转换为列表并在列表中进行替换:

    >>> x = np.array([1,2,3,4])
    >>> y = list(x)
    >>> y[2:3] = [5, 6, 7]
    >>> y = np.array(y)
    >>> y
    array([1, 2, 5, 6, 7, 4])
    

    (请注意,与x[2] = 3 之类的操作不同,这两个选项都会创建一个新的独立数组,而不是改变x。)

    Numpy 数组不兼容改变大小的操作;唯一的方法是制作一个全新的数组。如果需要更改对象的大小,请不要使用 numpy 数组;如果您需要使用 numpy 数组,请找到一种方法来最小化或避免更改它们的大小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-03
      • 2013-12-08
      相关资源
      最近更新 更多