pyhon比较二维ndarray中某列的数值并将该二维ndarray重新排序
时间: 2024-05-01 18:18:16 浏览: 74
可以使用numpy中的argsort()函数来实现该功能。代码如下:
```
import numpy as np
# 生成二维ndarray
arr = np.array([[3, 2, 5], [1, 7, 4], [9, 6, 8]])
# 按第2列排序
idx = arr[:, 1].argsort()
arr_sorted = arr[idx]
print(arr_sorted)
```
运行结果为:
```
array([[3, 2, 5],
[9, 6, 8],
[1, 7, 4]])
```
说明:argsort()函数返回的是排序后元素在原数组中的索引,可以使用该索引来重新排列原数组。上述代码中,使用arr[:, 1]获取二维ndarray的第2列,对该列进行排序并返回排序后的索引idx,最后使用idx对原数组arr重新排列得到arr_sorted。
相关问题
在pyhon排序中的用法
在Python中,排序是一种非常常见的操作,可以对列表、元组等序列类型的元素进行有序排列。Python内置了许多排序算法,最常用的是`list.sort()`方法和`sorted()`函数。
1. `list.sort()`方法:当你直接对一个列表调用这个方法时,它会就地修改原列表并返回None。例如:
```python
numbers = [3, 1, 4, 1, 5, 9]
numbers.sort() # 直接在numbers上进行排序,不会返回新的列表
print(numbers) # 输出: [1, 1, 3, 4, 5, 9]
```
2. `sorted()`函数:这个函数则会创建一个新的排序后的列表,并保持原列表不变。示例:
```python
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 输出: [1, 1, 3, 4, 5, 9]
```
此外,Python还允许自定义排序规则,通过提供一个`key`参数或`cmp`关键字参数来进行复杂排序。比如,你可以根据某个属性值或函数结果进行排序。
pyhon 冒泡排序
以下是使用 Python 实现的冒泡排序算法示例代码:
```python
def bubble_sort(arr):
n = len(arr)
for i in range(n - 1):
for j in range(n - 1 - i):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
# 示例
阅读全文