In [1]:
import numpy as np
In [2]:
a = np.arange(9).reshape((3, 3))
In [3]:
print(a)
In [4]:
print(np.diag(a))
In [5]:
print(np.diag(a, k=1))
In [6]:
print(np.diag(a, k=2))
In [7]:
print(np.diag(a, k=3))
In [8]:
print(np.diag(a, k=-1))
In [9]:
print(np.diag(a, k=-2))
In [10]:
print(np.diag(a, k=-3))
In [11]:
a = np.arange(12).reshape((3, 4))
In [12]:
print(a)
In [13]:
print(np.diag(a))
In [14]:
print(np.diag(a, k=1))
In [15]:
print(np.diag(a, k=-1))
In [16]:
a = np.arange(27).reshape((3, 3, 3))
In [17]:
print(a)
In [18]:
# print(np.diag(a))
# ValueError: Input must be 1- or 2-d.
In [19]:
a = np.arange(9).reshape((3, 3))
In [20]:
print(a)
In [21]:
a_diag = np.diag(a)
In [22]:
print(a_diag)
In [23]:
# a_diag[0] = 100
# ValueError: assignment destination is read-only
In [24]:
a_diag.flags.writeable = True
In [25]:
a_diag[0] = 100
In [26]:
print(a_diag)
In [27]:
print(a)
In [28]:
a_diag_copy = np.diag(a).copy()
In [29]:
print(a_diag_copy)
In [30]:
a_diag_copy[1] = 100
In [31]:
print(a_diag_copy)
In [32]:
print(a)