# Numpy Arrays
## Numpy Arrays
### Broadcasting Arrays
### Reshaping Arrays
> This concept basically boils down to:
> “We can expand a list that contains a single value, but we don’t know what to do with a single value itself.”
### Indexing and Slicing in Higher Dimensions
```python
import numpy as np
data = np.array([[10, 20, 30], [40, 50, 60], [70, 80, 90]])
row_indices = np.arange(3)[:, np.newaxis] # Shape (3, 1)
# Extract diagonal elements using row_indices and column indices
diagonal = data[row_indices, row_indices]
# Output: array([10, 50, 90])
print(diagonal)
```