当前位置: 首页 > news >正文

python: range和arange区别

range 和 arange 都可用于生成一系列数字,但它们分属于不同的工具,在功能、使用场景和特性上存在差异。

来源和基本用途

range:这是 Python 内置函数,主要用于创建不可变的整数序列,常结合 for 循环使用,实现指定次数的迭代操作。
arange:它是 NumPy 库中的函数,全称为 numpy.arange。主要用于生成一维的 NumPy 数组,在科学计算和数据处理中使用频繁。

语法和参数

  • range:有三种调用形式:
    range(stop):生成从 0开始到 stop - 1 的整数序列。
    range(start, stop):生成从 start 开始到 stop - 1 的整数序列。
    range(start, stop, step):生成从start 开始,以 step 为步长,到 stop - 1 的整数序列。
# 示例
for i in range(5):
    print(i)

for i in range(2, 5):
    print(i)

for i in range(1, 10, 2):
    print(i)
  • arange:语法为 numpy.arange([start, ]stop, [step, ], dtype=None)start是起始值(可选,默认为 0),stop 是终止值,step 是步长(可选,默认为 1),dtype 是数组的数据类型(可选)。
import numpy as np

arr1 = np.arange(5)
print(arr1)

arr2 = np.arange(2, 5)
print(arr2)

arr3 = np.arange(1, 10, 2)
print(arr3)

数据类型和步长灵活性

range:只能生成整数序列,步长也必须是整数。如果你传入非整数的步长,会引发 TypeError 异常。

try:
    for i in range(1, 5, 0.5):
        print(i)
except TypeError as e:
    print(f"错误信息: {e}")

arange:步长可以是浮点数,能够生成包含浮点数的数组。

import numpy as np

arr = np.arange(1, 2, 0.1)
print(arr)

返回值类型

  • range:返回的是range对象,这是一种不可变的序列类型。它是惰性的,只有在迭代时才会逐个生成元素,节省内存。
my_range = range(5)
print(type(my_range))
  • arange:返回的是 NumPyndarray 对象,是一个多维数组,支持 NumPy 提供的各种数组操作和数学运算。
import numpy as np

arr = np.arange(5)
print(type(arr))

性能方面

在处理大规模数据时,由于 arange 返回的是 NumPy 数组,其底层使用 C 语言实现,运算速度通常比 range 快。不过,如果只是进行简单的循环迭代,range 已经足够高效,并且代码更简洁。
综上所述,range 适用于简单的整数序列迭代,而 arange 在科学计算、需要处理浮点数序列或进行大规模数组操作时更具优势。

相关文章:

  • 智能合约安全审计平台——形式化验证模型构建
  • QPS是什么??
  • 组件安全工程化革命:从防御体系构建到安全基因重塑
  • 各地物价和生活成本 东欧篇
  • 【Code】《代码整洁之道》笔记-Chapter15-JUnit内幕
  • 使用人工智能大模型腾讯元宝,如何做课题研究?
  • Redis 常见的集群架构
  • 基于SpringBoot的社区老人健康信息管理系统(源码+数据库+万字文档)
  • 用AI直接生成架构图的初步探索
  • 电商中的订单支付(内网穿透)
  • python ftplib 上传文件名 乱码的解决办法
  • 网络入侵检测Suricat之流(flow)检测
  • 安卓性能调优之-掉帧测试
  • 第十九讲延续 简单理解什么是XGboost模型
  • sqlalchemy orm查询语法与多对多外键关系relationship使用
  • Redis高频面试题(含答案)
  • 嵌入式C语言 - 计算机存储体系与32位CPU寻址能力解析
  • 【Redis】数据结构和内部编码
  • 轨道力学课程习题集
  • PDF解析示例代码学习
  • “水运江苏”“航运浙江”,江浙两省为何都在发力内河航运?
  • 国羽用冠军开启奥运周期,林丹:希望洛杉矶奥运取得更好成绩
  • 同济大学原常务副校长、著名隧道及地下工程专家李永盛逝世
  • 巴西总统卢拉抵达北京
  • 习近平结束对俄罗斯国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典回到北京
  • 央行设立服务消费与养老再贷款,额度5000亿元