【问题标题】:NumPy random.shuffle functionNumPy random.shuffle 函数
【发布时间】:2013-07-14 07:06:21
【问题描述】:

numpy.random.shuffle 函数遇到了一些奇怪的问题

from numpy import arange
from numpy.random import shuffle

a = arange(5)
b = a
c = a[:]

shuffle(c)

ab 所有更改为 c。其实不管我shuffle()哪个变量,其他两个都跟着变化。我认为当我使用切片复制时,原始变量应该是独立的。我错过了什么?如何保护原始变量不被更改?

【问题讨论】:

  • 使用切片为普通列表创建副本,但不一定适用于所有类型。您必须阅读任何类型的对象的文档以查看切片是否会复制。

标签: python random numpy shuffle


【解决方案1】:

根据Basic slicing documentation

所有基本切片生成的数组都是原始数组的视图。

使用ndarray.copynumpy.copy 获取副本。

【讨论】:

    【解决方案2】:

    使用c = a.copy() 可以帮助您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-11
      • 2021-03-10
      • 2014-12-22
      • 2016-10-17
      • 1970-01-01
      • 2018-01-10
      相关资源
      最近更新 更多