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

不可变的numpy数组?

曾明诚
2023-03-14
问题内容

有没有简单的方法来创建不可变的NumPy数组?

如果必须从中派生一个类ndarray来执行此操作,那么为实现不变性而必须重写的最少方法集是什么?


问题答案:

您可以使numpy数组不可写:

a = np.arange(10)
a.flags.writeable = False
a[0] = 1
# Gives: ValueError: assignment destination is read-only

另请参见此线程中的讨论:

http://mail.scipy.org/pipermail/numpy-
discussion/2008-December/039274.html

和文档:

http://docs.scipy.org/doc/numpy/reference/generation/numpy.ndarray.flags.html



 类似资料:
  • 问题内容: 创建NumPy数组并将其另存为Django上下文变量后,加载网页时出现以下错误: 这是什么意思? 问题答案: 我定期“ jsonify” np.arrays。尝试首先在数组上使用“ .tolist()”方法,如下所示: 为了“ unjsonify”数组使用:

  • 问题内容: 有没有Java原始数组的不变选择?制作一个原始数组final实际上并不能阻止人们做类似的事情 我希望数组的元素不可更改。 问题答案: 不适用于原始数组。你将需要使用列表或其他数据结构:

  • 目录 不变性(immutability)的好处有哪些? 为什么 Redux 需要不变性? 为什么 Redux 对浅比较的使用要求不变性? - 浅比较和深比较有何区别? - Redux 是如何使用浅比较的? - combineReducers 是如何进行浅比较的? - React-Redux 是如何使用浅比较拗的? - React-Redux 是如何使用浅比较来决定组件是否需要重新渲染的? - 为什

  • 不可变数据 ClojureScript 中默认采用不可变数据作为底层实现. cljs 当中实现了 Persistent Data Structure, 虽然是不可变数据, 但创建新数据一般会进行结构复用, 也就是说, 比如下面这个例子, b 在内部实现中就可以复用 a 的某些部分 (def a {:a 1 :b 2}) ; #'cljs.user/a (assoc a :c 3) ; {:a 1,

  • 问题内容: 我知道这可能很愚蠢,但是很多地方都声称Java中的Integer类是不可变的,但是下面的代码: 毫无困难地执行(给出预期的结果)6。因此有效地改变了a的值。这不是说Integer是可变的吗?第二个问题和一些小问题:“不变的类不需要复制构造函数”。有人在乎解释原因吗? 问题答案: 不可变并不意味着永远不能等于另一个值。例如,也是不可变的,但是我仍然可以这样做: 并没有改变,而是变成了一个

  • 问题内容: 我在创建numpy数组的numpy数组时遇到问题。我将在一个循环中创建它: 所需结果: 实际结果: 可能吗?我不知道数组的最终尺寸,因此无法使用固定尺寸对其进行初始化。 问题答案: 永远不要在循环中追加数组:与基本的Python相比,这是NumPy非常不擅长的一项操作。这是因为您要对每个数据进行完整复制,这将花费您二次时间。 相反,只需将您的数组附加到Python列表中,并在最后进行转