Чи є простий спосіб створити незмінний масив 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.