python对array进行排序
时间: 2024-01-13 17:17:44 浏览: 37
以下是Python对array进行排序的例子:
```python
import numpy as np
# 创建一个二维数组
arr = np.array([[3, 2], [1, 4]])
# 对数组进行排序
arr_sorted = np.sort(arr, axis=1)
# 输出排序后的数组
print(arr_sorted) # 输出:[[2 3] [1 4]]
```
以上代码中,我们使用了NumPy库中的sort()函数对二维数组进行排序。其中,axis参数指定了排序的方向,axis=1表示按行排序,axis=0表示按列排序。在这个例子中,我们按行排序,即对每一行进行排序。
相关问题
python对array从大到小排序
在 Python 中,可以使用 `sorted()` 函数对数组进行排序。默认情况下,`sorted()` 函数会按升序排序。如果需要按降序排序,可以通过设置 `reverse=True` 参数来实现。
以下是一个示例代码,使用 `sorted()` 函数对数组进行降序排序:
```python
arr = [5, 3, 7, 1, 8, 2, 9, 4, 6]
arr_sorted = sorted(arr, reverse=True)
print(arr_sorted)
```
输出结果为:
```
[9, 8, 7, 6, 5, 4, 3, 2, 1]
```
如果需要对数组本身进行排序,可以使用 `sort()` 方法。同样,可以通过设置 `reverse=True` 参数来实现降序排序。
以下是一个示例代码,使用 `sort()` 方法对数组进行降序排序:
```python
arr = [5, 3, 7, 1, 8, 2, 9, 4, 6]
arr.sort(reverse=True)
print(arr)
```
输出结果为:
```
[9, 8, 7, 6, 5, 4, 3, 2, 1]
```
使用Python实现VIKOR进行排序
根据提供的引用内容,VIKOR方法是一种多准则决策分析方法,可以用于排序。以下是使用Python实现VIKOR进行排序的步骤:
1.导入必要的库和数据
```python
import numpy as np
# 假设有3个备选方案,每个方案有4个评价指标
data = np.array([[0.3, 0.4, 0.5, 0.2], [0.4, 0.5, 0.3, 0.1], [0.5, 0.3, 0.4, 0.3]])
```
2.计算归一化矩阵
```python
# 计算每个评价指标的最大值和最小值
max_data = np.max(data, axis=0)
min_data = np.min(data, axis=0)
# 归一化矩阵
norm_data = (data - min_data) / (max_data - min_data)
```
3.计算权重向量
```python
# 计算熵值
p = norm_data / np.sum(norm_data, axis=1, keepdims=True)
entropy = -np.sum(p * np.log2(p), axis=1)
# 计算权重向量
w = (1 - entropy) / np.sum(1 - entropy)
```
4.计算决策矩阵
```python
# 计算加权规范化矩阵
v = np.sum(w * norm_data, axis=1)
# 计算决策矩阵
s = np.sqrt(np.sum((norm_data - v[:, np.newaxis]) ** 2, axis=2))
r = np.argsort(s) + 1
```
5.计算VIKOR指数
```python
# 计算最小值和最大值
s_min = np.min(s, axis=0)
s_max = np.max(s, axis=0)
# 计算VIKOR指数
q = np.zeros(data.shape[0])
for i in range(data.shape[0]):
q[i] = np.sum(w * np.abs(s[i] - s_max) / (s_max - s_min))
```
6.排序
```python
# 按照VIKOR指数排序
rank = np.argsort(q)
```