numpyでデータを扱う その6: 深いコピー

In [1]: import numpy as np

In [2]: a = np.array([1,2,3])

In [3]: a1 = a

In [4]: a1
Out[4]: array([1, 2, 3])

In [5]: a1[1] = 5

In [6]: a1
Out[6]: array([1, 5, 3])

In [7]: a
Out[7]: array([1, 5, 3])

In [8]: a2 = a.copy()

In [9]: a2
Out[9]: array([1, 5, 3])

In [10]: a2[0] = 6

In [11]: a2
Out[11]: array([6, 5, 3])

In [12]: a
Out[12]: array([1, 5, 3])

In [13]: c2 = array([[0,1,2],[3,4,5]])
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-13-6e67e95fb26b> in <module>
----> 1 c2 = array([[0,1,2],[3,4,5]])

NameError: name 'array' is not defined

In [14]: c2 = np.array([[0,1,2],[3,4,5]])

In [15]: c3 = c2.ravel()

In [16]: c4 = c2.flatten()

In [17]: c3[0] = 6

In [18]: c4[0] = 7

In [19]: c3
Out[19]: array([6, 1, 2, 3, 4, 5])

In [20]: c4
Out[20]: array([7, 1, 2, 3, 4, 5])

In [21]: c2
Out[21]:
array([[6, 1, 2],
       [3, 4, 5]])