Вы можете использовать [:]
шаблон, чтобы скопировать список массива или (на самом деле, просто для списков, а не для массивов. См. обновление ниже).
a = np.ones(4)
b = a[:]
>>> b
array([ 1., 1., 1., 1.])
>>> id(a)
4606143744
>>> id(b)
4606143984
Timings
a = np.random.randn(1000000)
%timeit -n 1000 a.copy()
1000 loops, best of 3: 1.1 ms per loop
%timeit -n 1000 a[:]
1000 loops, best of 3: 659 ns per loop
Update
я обычно удалить ошибочную запись, как это, но я ухожу, потому что я считаю, что это полезно.
Работает как и ожидалось для списков.
a = [1, 2, 3]
b = a[:]
b[2] = 0
>>> a
[1, 2, 3]
>>> b
[1, 2, 0]
Но, как указывал @ Divakar, это не кажется, работает для Numpy массивов:
a = np.array([1, 2, 3])
b = a[:]
b[2] = 0
>>> a
array([1, 2, 0])
>>> b
array([1, 2, 0])
>>> id(a)
4600986400
>>> id(b)
4606142624
Лучше явно использовать copy()
метод (например b = a.copy()
).
[ndarray.copy()] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.copy.html) ? – Divakar
В Python 3 объекты 'list' также имеют метод' copy', который, как я думаю, превосходит все другие методы для ясности намерения. –