(61) numpy配列を書き換え禁止にする

投稿者: | 2014年9月5日

9,344 views

この記事は最終更新から 2289日 が経過しています。

5行3列の0行列aを作成し、[1,2]の要素の値を3に書き換える。

>>> import numpy as np
>>> a = np.zeros((5,3))
>>> a
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])
>>> a[1,2]=3
>>> a
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  3.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])

この配列aに read only 属性を付与する。

>>> a.flags.writeable = False
>>> a.flags
  C_CONTIGUOUS : True
  F_CONTIGUOUS : False
  OWNDATA : True
  WRITEABLE : False
  ALIGNED : True
  UPDATEIFCOPY : False

すると、値を変更できなくなる。

>>> a[1,2]=9
Traceback (most recent call last):
  File "", line 1, in 
ValueError: assignment destination is read-only

read only属性を外すと、書き込みができるようになる。

>>> a.flags.writeable = True
>>> a.flags
  C_CONTIGUOUS : True
  F_CONTIGUOUS : False
  OWNDATA : True
  WRITEABLE : True
  ALIGNED : True
  UPDATEIFCOPY : False
>>> a[1,2]=9
>>> a
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  9.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])

アクセス数(直近7日): ※試験運用中、BOT除外簡易実装済
  • 2026-01-24: 1回
  • 2026-01-23: 1回
  • 2026-01-22: 0回
  • 2026-01-21: 3回
  • 2026-01-20: 0回
  • 2026-01-19: 0回
  • 2026-01-18: 0回
  • コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です