NumPy基础(数组与向量化计算)

NumPy(Numerical Python 的简称)是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 是许多其他库(如 Pandas、SciPy、Matplotlib 等)的基础,对于数据分析、机器学习、科学计算等领域来说,NumPy 是非常重要的。

数组

NumPy 的主要对象是同种元素类型的多维数组。这些数组是动态类型、大小可变的,并且元素之间具有相同的类型。

创建数组
  • 使用 numpy.array() 从 Python 列表或元组创建数组。
  • 使用 numpy.zeros(), numpy.ones(), numpy.empty() 创建具有指定形状和类型的数组。
  • 使用 numpy.arange(), numpy.linspace() 等函数创建数值范围数组。
  • 使用 numpy.random 模块创建随机数组。
访问和修改数组元素
  • 使用索引访问单个元素或子数组(切片)。
  • 修改数组中的元素。
数组形状和大小
  • 使用 shape 属性获取数组的形状(维度)。
  • 使用 size 属性获取数组中的元素总数。
  • 使用 reshape() 方法改变数组的形状。

向量化计算

NumPy 提供了大量的数学函数和操作,可以直接应用于数组,而不需要显式编写循环。这种能力称为向量化计算,可以显著提高代码的执行效率。

常见的数学函数和操作
  • 加法、减法、乘法、除法等算术运算。
  • 平方根、对数、指数等数学函数。
  • 统计函数,如 mean(), std(), sum(), min(), max() 等。
  • 布尔索引和条件过滤。
  • 排序和搜索。
示例
import numpy as np

# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])

# 向量化加法
arr_plus_one = arr + 1
print(arr_plus_one)  # 输出: [2 3 4 5 6]

# 计算平均值
mean_value = np.mean(arr)
print(mean_value)  # 输出: 3.0

# 创建一个二维数组
matrix = np.array([[1, 2], [3, 4], [5, 6]])

# 矩阵乘法(需要两个二维数组)
result = np.dot(matrix, matrix.T)  # 矩阵与其转置相乘
print(result)

# 布尔索引
bool_arr = arr > 2
print(arr[bool_arr])  # 输出: [3 4 5]

以上只是 NumPy 的基础功能介绍,NumPy 还提供了许多其他高级功能和优化技巧,如广播机制、广播函数、ufuncs(通用函数)等。熟练掌握 NumPy 的使用,对于提高数据处理和分析的效率至关重要。


相关推荐

  1. NumPy基础数组量化计算

    2024-06-12 02:42:04       12 阅读
  2. 语法、语义、语用量化

    2024-06-12 02:42:04       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-12 02:42:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-12 02:42:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-12 02:42:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-12 02:42:04       20 阅读

热门阅读

  1. Windows 蓝牙无法连接 解决方案

    2024-06-12 02:42:04       9 阅读
  2. 2. 基础数据结构之哈希表

    2024-06-12 02:42:04       10 阅读
  3. 面试题:String 、StringBuffer 、StringBuilder的区别

    2024-06-12 02:42:04       8 阅读
  4. Leetcode 3175. Find The First Player to win K Games in a Row

    2024-06-12 02:42:04       13 阅读
  5. Flask-REXTx 学习笔记——2.字段掩码(Fields masks)

    2024-06-12 02:42:04       10 阅读
  6. Qt6 播放音视频

    2024-06-12 02:42:04       11 阅读
  7. 嵌入式常用工具

    2024-06-12 02:42:04       9 阅读
  8. 高效 “Phone Call” 策略获得更多订单!

    2024-06-12 02:42:04       9 阅读
  9. 第一章 - 第6节- 数制转换 - 课后习题

    2024-06-12 02:42:04       14 阅读