6. 考虑一个维度(5,5,3)的数组,如何将其与一个(5,5)的数组相乘? 7. 如何对一个数组中任意两行做交换? 8. 如何找到一个数组中出现频率最高的值?
时间: 2023-11-27 22:49:40 浏览: 30
6. 可以使用广播功能将 (5,5) 的数组通过扩展维度变为 (5,5,1),然后使用 numpy 的乘法函数 numpy.dot() 进行矩阵乘法。如下所示:
```python
import numpy as np
# 定义一个维度为 (5,5,3) 的数组
arr1 = np.random.rand(5, 5, 3)
# 定义一个维度为 (5,5) 的数组
arr2 = np.random.rand(5, 5)
# 将 arr2 扩展成维度为 (5,5,1) 的数组
arr2 = arr2[:, :, np.newaxis]
# 进行矩阵乘法
result = np.dot(arr1, arr2)
print(result)
```
7. 可以使用 numpy 的切片功能,对任意两行进行交换。如下所示:
```python
import numpy as np
# 定义一个维度为 (5,5) 的数组
arr = np.random.rand(5, 5)
# 交换第 1 和第 3 行
arr[1], arr[3] = arr[3], arr[1]
print(arr)
```
8. 可以使用 numpy 的 unique 函数和 bincount 函数来找到出现频率最高的值。如下所示:
```python
import numpy as np
# 定义一个数组
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3])
# 找到出现频率最高的值
values, counts = np.unique(arr, return_counts=True)
index = np.argmax(counts)
most_frequent_value = values[index]
print(most_frequent_value)
```