学习python笔记:10,requests,enumerate,numpy.array

requests库,用于发送 HTTP 请求的 Python 库。

requests 是一个用于发送 HTTP 请求的 Python 库。它使得发送 HTTP 请求变得简单且人性化。以下是一些基本的 requests 函数及其用途:

  1. requests.get(url, **kwargs)

发送一个 GET 请求到指定的 URL。

|---|-------------------------------------------------------|
| | import requests |
| | response = requests.get('https://www.example.com') |
| | print(response.text) |

  1. requests.post(url, data=None, json=None, **kwargs)

发送一个 POST 请求到指定的 URL。data 参数用于发送表单数据,而 json 参数用于发送 JSON 格式的数据。

|---|---------------------------------------------------------------------------|
| | import requests |
| | payload = {'key1': 'value1', 'key2': 'value2'} |
| | response = requests.post('https://www.example.com/post', data=payload) |
| | print(response.text) |

  1. requests.put(url, data=None, **kwargs)

发送一个 PUT 请求到指定的 URL。这通常用于更新资源。

  1. requests.delete(url, **kwargs)

发送一个 DELETE 请求到指定的 URL。这通常用于删除资源。

  1. requests.head(url, **kwargs)

发送一个 HEAD 请求到指定的 URL。HEAD 请求与 GET 请求类似,但只返回响应的头部信息,不返回实际的内容。

  1. requests.patch(url, data=None, **kwargs)

发送一个 PATCH 请求到指定的 URL。PATCH 请求通常用于部分更新资源。

  1. requests.session()

创建一个 Session 对象,用于跨多个请求保持某些参数,如 cookies 和 headers。这对于需要登录或维护会话状态的网站非常有用。

|---|------------------------------------------------------------------|
| | import requests |
| | with requests.Session() as s: |
| | s.get('https://www.example.com/login', auth=('user', 'pass')) |
| | r = s.get('https://www.example.com/protected') |
| | print(r.text) |

每个 requests 函数都返回一个 Response 对象,该对象包含有关响应的各种信息,如状态码、头部、内容等。你可以通过 Response 对象的各种属性(如 status_codeheaderstextjson() 等)来访问这些信息。

为了使用 requests 库,你需要先安装它。你可以使用 pip(Python 的包管理工具)来安装:

|---|------------------------|
| | pip install requests |

requests 库因其简洁、易用和强大的功能而受到广大 Python 开发者的喜爱,是发送 HTTP 请求的流行选择之一。

numpy.array

numpy.array 是 NumPy(Numerical Python 的简称)库中的一个核心函数,用于创建一个多维数组对象。NumPy 是 Python 中用于数值计算的一个扩展库,它提供了大量的数学函数来对数组和矩阵进行运算。

使用 numpy.array,你可以将 Python 中的列表、元组或其他序列类型的数据转换为 NumPy 数组,从而可以利用 NumPy 提供的各种高效和方便的数值计算功能。

下面是 numpy.array 的一些基本用法:

导入 NumPy 库

首先,你需要导入 NumPy 库:

|---|----------------------|
| | import numpy as np |

创建一维数组

|---|-----------------------------------|
| | # 从 Python 列表创建一维数组 |
| | list_data = [1, 2, 3, 4, 5] |
| | array_1d = np.array(list_data) |
| | print(array_1d) |

输出:

|---|---------------|
| | [1 2 3 4 5] |

创建二维数组(矩阵)

|---|------------------------------------------------------|
| | # 从 Python 列表的列表创建二维数组(矩阵) |
| | list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] |
| | array_2d = np.array(list_of_lists) |
| | print(array_2d) |

输出:

|---|-------------|
| | [[1 2 3] |
| | [4 5 6] |
| | [7 8 9]] |

指定数组的数据类型

你可以在创建数组时指定数据类型:

|---|---------------------------------------------------|
| | # 创建一个浮点型的数组 |
| | float_array = np.array([1, 2, 3], dtype=float) |
| | print(float_array) |
| | print(float_array.dtype) # 输出数组的数据类型 |

输出:

|---|---------------|
| | [1. 2. 3.] |
| | float64 |

数组的形状和维度

你可以使用 shape 属性查看数组的形状,使用 ndim 属性查看数组的维度数:

|---|------------------------------------------|
| | print(array_2d.shape) # 输出:(3, 3) |
| | print(array_2d.ndim) # 输出:2,表示这是一个二维数组 |

NumPy 数组提供了很多高级的功能,比如切片、索引、广播、数学运算等,使得数值计算变得更加简单和高效。在数据分析和科学计算中,NumPy 数组是极其重要的数据结构。

NumPy库中的array和Python的内置列表(list)

NumPy库中的array和Python的内置列表(list)之间存在多个关键的区别。这些区别主要体现在数据类型、内存使用、运算能力以及用途等方面。

  1. 数据类型
    • list中的数据类型可以不同,即列表中的元素可以是任何Python对象,包括整数、浮点数、字符串、其他列表等。
    • array则要求所有元素的数据类型必须相同。这确保了数据的一致性和更高的运算效率。
  2. 内存使用
    • list在内存中存储的是数据的引用(指针),而不是数据本身。这意味着,如果你有一个包含大量对象的列表,每个对象都会单独占用内存空间,而列表本身则只是存储了指向这些对象的指针。
    • array在内存中存储的是实际的数据值,它通常使用连续的内存块来存储数据,这有助于减少内存碎片并提高数据访问速度。
  3. 运算能力
    • list不支持数学四则运算或其他复杂的数学运算。虽然可以通过循环和条件语句对列表中的元素进行运算,但这种方式通常较为低效。
    • array支持大量的数学运算,包括元素级的运算(如加法、乘法等)、矩阵运算(如点积、转置等)以及更复杂的线性代数运算。这使得array成为进行科学计算、数据分析以及机器学习等任务时的理想选择。
  4. 功能与用途
    • list是Python中的一种通用数据结构,用于存储和处理一组有序的项目。它可以轻松地添加、删除和修改元素,并且支持各种列表操作(如排序、切片等)。
    • array则主要用于存储和处理数值数据,尤其是那些需要进行数学运算或科学计算的数据。由于其高效的内存使用和强大的运算能力,array在处理大量数据时通常比list更为高效。

总结来说,listarray各有其优势和应用场景。在选择使用哪种数据结构时,应根据具体的需求和任务来决定。如果需要处理的是一组有序的项目,并且需要进行频繁的修改和操作,那么list可能是一个更好的选择。而如果需要处理的是大量的数值数据,并且需要进行复杂的数学运算或科学计算,那么array则可能更为合适。

相关推荐
Lyn_Li6 小时前
扫描 PDF 歪了怎么办?用 6 种检测方法做本地批量扶正(附开源工具)
python·pdf·ocr·tesseract·开源工具·文档处理·本地处理·扫描件纠偏
金銀銅鐵6 小时前
费马小定理
python·数学·算法
Piko6147 小时前
H3C IRF2 堆叠实战:打造高可靠核心交换网络
运维·网络·笔记
茯苓gao10 小时前
嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解
网络·嵌入式硬件·学习·信息与通信
疋瓞10 小时前
python和C++对比(1)_数据类型和数据结构
数据结构·c++·python
如此这般英俊11 小时前
手搓Claude Code-第六章 subagent
数据结构·人工智能·python·语言模型·自然语言处理
元Y亨H12 小时前
Python - FastAPI 全方位介绍
python·fastapi
dexi.Chi 攻城狮12 小时前
SQL层次查询语法
经验分享·笔记·sql
HERR_QQ13 小时前
强化学习的数学原理 学习笔记
人工智能·笔记·学习·自动驾驶
error:(14 小时前
【系统与实战双精通】VS Code 调试 ROS2 Python 节点与 Launch 系统指南
android·java·python