Чи є простий спосіб створити незмінний масив NumPy?
Якщо для цього потрібно вивести клас ndarray
, який мінімальний набір методів потрібно замінити, щоб досягти незмінності?
Чи є простий спосіб створити незмінний масив 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/generated/numpy.ndarray.flags.html
a.setflags(write=False)
.
setflags()
чи flags.writeable=
?
.flags.writeable = False
як і раніше не є незмінними. Якщо x
є масивом, y = x[:]; x.flags.writeable = False; y[0] = 5
оновлює перший елемент x
до 5
.