如何在Python中对numpy数组内的数字进行升序重排?
对numpy数组进行升序排序的方法
针对你生成的数组c,可以利用numpy自带的排序功能快速实现升序排列,这里提供两种常用方式:
1. 生成新的排序后数组(不修改原数组)
使用np.sort()函数,它会返回一个排序后的新数组,原数组保持不变。如果不想包含初始的0元素(也就是c[0]),可以先对数组切片取c[1:]再排序:
import numpy as np import random as rd NUMBER=5 c = np.zeros(NUMBER+1) for k in range(1,NUMBER+1): c[k] = rd.uniform(1,10) # 生成排序后的新数组(排除索引0的0元素) sorted_c = np.sort(c[1:]) print(sorted_c)
2. 原地修改原数组排序
如果希望直接修改原数组,使用数组对象的.sort()方法,同样可以先切片处理:
import numpy as np import random as rd NUMBER=5 c = np.zeros(NUMBER+1) for k in range(1,NUMBER+1): c[k] = rd.uniform(1,10) # 对c[1:]部分原地升序排序 c[1:].sort() print(c)
另外,你可以简化随机数组的生成步骤,不用循环,直接用numpy的随机函数生成:
import numpy as np NUMBER=5 # 直接生成1到10之间的5个随机数,不需要初始化全0数组 c = np.random.uniform(1, 10, size=NUMBER) # 排序 sorted_c = np.sort(c) print(sorted_c)
内容的提问来源于stack exchange,提问作者Médicis
相关产品推荐
相关产品推荐

