x = np.array([[-1, 1], [-2, 2]])
for row in x:  # using for
    print('Row :', row)

for a in np.nditer(x):  # using nditer : iterate through each element.
    print(a)

# Boolean indexing : Checking if every element of an array satisfies a condition, results in a Boolean array

x = np.arange(10).reshape(2, 5)
condition = x % 2 == 0
print(condition)
print(x[condition])

#

x = np.array([[0, 1], [1, 1], [2, 2]])
print(x.sum(-1))

x = np.array([[1, 2], [3, 4], [5, 6]])
print(x[[0, 1, 2], [0, 1, 1]])

x = np.arange(30).reshape(3, 5, 2)
print(x[1, ::2, 1])

x = np.arange(4)
print(x.flatten())

x = np.arange(12).reshape(3, 4)
print(x[-2])