如何使用Numpy arange函数打印指定范围内的偶数和奇数整数
Numpy arange生成指定范围奇偶数的正确用法
错误原因说明
你之前的代码存在两个问题:
- 打印偶数的代码起始值设为5(奇数),步长为2,生成的所有值都是奇数,自然得不到偶数
- 打印奇数的代码步长设为1,会生成范围内所有整数,没有做奇偶筛选
正确实现方案
np.arange的参数规则为np.arange(start, stop, step),生成左闭右开区间的序列(包含start,不包含stop),我们只需要根据奇偶需求调整起始值,再设置步长为2即可:
生成指定范围偶数
import numpy as np start = 5 end = 25 # 调整起始值为范围内第一个偶数 even_start = start if start % 2 == 0 else start + 1 # 若需要包含end值,可将第二个参数改为end + 1 even_arr = np.arange(even_start, end, 2) print(even_arr)
输出结果:
array([ 6, 8, 10, 12, 14, 16, 18, 20, 22, 24])
生成指定范围奇数
import numpy as np start = 5 end = 25 # 调整起始值为范围内第一个奇数 odd_start = start if start % 2 == 1 else start + 1 # 若需要包含end值,可将第二个参数改为end + 1 odd_arr = np.arange(odd_start, end, 2) print(odd_arr)
输出结果:
array([ 5, 7, 9, 11, 13, 15, 17, 19, 21, 23])
补充说明
如果需要动态接收用户输入的范围,只需替换start和end的赋值逻辑即可,无需额外循环判断,numpy向量化操作的效率远高于原生Python循环,数据量越大优势越明显。
内容的提问来源于stack exchange,提问作者user17344362
相关产品推荐
相关产品推荐

