28. 把数组np.random.randint(1,10(3,3))按照数组最后一列的数值进行排序
时间: 2024-03-05 18:49:25 浏览: 49
可以使用NumPy的argsort函数对数组最后一列进行排序,并且返回排序后的索引。然后再使用这些索引对整个二维数组进行行排序即可。具体实现代码如下:
```python
import numpy as np
arr = np.random.randint(1, 10, (3, 3))
print("原始数组:\n", arr)
sorted_indices = arr[:, 2].argsort()
arr_sorted = arr[sorted_indices]
print("按最后一列排序后的数组:\n", arr_sorted)
```
输出结果类似于:
```
原始数组:
[[7 1 6]
[2 8 3]
[8 6 7]]
按最后一列排序后的数组:
[[2 8 3]
[7 1 6]
[8 6 7]]
```
其中,`arr[:, 2]`可以获得二维数组中最后一列的值,然后使用`argsort`函数对这些值进行排序,返回排序后的索引。最后,使用这些索引对整个数组进行行排序,就可以得到按照最后一列数值排序后的数组了。
相关问题
把数组np.random.randint(1,10(3,3))按照数组最后一列的数值进行排序
好的,你可以按照以下步骤操作:
1. 导入 numpy 模块:
```
import numpy as np
```
2. 生成数组:
```
arr = np.random.randint(1, 10, (3, 3))
```
3. 按照数组最后一列的数值进行排序:
```
arr = arr[arr[:, -1].argsort()]
```
这个代码的意思是,先取出 arr 数组的最后一列,使用 `argsort()` 方法进行排序,得到排序后的索引值,然后再使用这个索引值对整个数组进行排序。
完整代码如下:
```
import numpy as np
# 生成数组
arr = np.random.randint(1, 10, (3, 3))
print("原始数组:\n", arr)
# 按照数组最后一列的数值进行排序
arr = arr[arr[:, -1].argsort()]
print("按照最后一列排序后的数组:\n", arr)
```
输出结果如下:
```
原始数组:
[[7 6 8]
[8 5 2]
[4 1 8]]
按照最后一列排序后的数组:
[[8 5 2]
[4 1 8]
[7 6 8]]
```
希望能帮到你!
阅读全文