14.1 NumPy基础

news/2024/9/23 18:11:44/

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏:
工💗重💗hao💗:野老杂谈
⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题.
⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、应用领域等内容。
⭐️ 全流程数据技术实战指南:全面讲解从数据采集到数据可视化的整个过程,掌握构建现代化数据平台和数据仓库的核心技术和方法。
⭐️ 构建全面的数据指标体系:通过深入的理论解析、详细的实操步骤和丰富的案例分析,为读者提供系统化的指导,帮助他们构建和应用数据指标体系,提升数据驱动的决策水平。
⭐️《遇见Python:初识、了解与热恋》 :涵盖了Python学习的基础知识、进阶技巧和实际应用案例,帮助读者从零开始逐步掌握Python的各个方面,并最终能够进行项目开发和解决实际问题。

摘要

NumPy 是 Python 中最流行的数值计算库,它提供了高效的数组和矩阵操作工具。本篇文章将带你了解 NumPy 的基础,包括如何创建数组、进行基本运算,以及一些常见的数组操作。通过轻松幽默的语言和生动的例子,让你掌握这门强大的工具。

目录
  1. NumPy 的前世今生
  2. 创建 NumPy 数组
  3. NumPy 数组的基本操作
  4. 数组的切片与索引
  5. 数学运算与广播机制
  6. NumPy 的常见函数
  7. NumPy 与其他库的配合使用
  8. 总结

1. NumPy 的前世今生

Python 世界的茫茫大海中,NumPy 是一个闪耀的灯塔。早期的 Python 数学运算依赖于基础的数据结构,如列表和元组,但这些数据结构的性能在处理大规模数据时显得力不从心。于是,一个名为 Travis Oliphant 的科学家在2005年开发了 NumPy,成为了科学计算领域的革命性工具。

NumPy 的核心是它的多维数组对象(ndarray),这是一个高效的多维数组,提供了丰富的数学运算和操作。简而言之,NumPy 的出现让 Python 变得更加强大,尤其是在数据处理和科学计算领域。

2. 创建 NumPy 数组

要使用 NumPy,首先需要导入它:

import numpy as np

创建数组是学习 NumPy 的第一步。以下是几种常见的数组创建方式:

  • 从列表创建:
my_list = [1, 2, 3, 4]
my_array = np.array(my_list)
print(my_array)
  • 创建全零数组:
zeros_array = np.zeros((2, 3))
print(zeros_array)
  • 创建全一数组:
ones_array = np.ones((3, 3))
print(ones_array)
  • 创建范围数组:
range_array = np.arange(0, 10, 2)
print(range_array)

这些简单的操作展示了 NumPy 的强大之处,它不仅可以轻松创建数组,还提供了丰富的函数来生成各种特殊数组。

3. NumPy 数组的基本操作

有了数组之后,接下来就是对这些数组进行各种操作。数组操作是 NumPy 的核心功能之一,下面是几个常见的操作例子:

  • 数组加减法:
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b)
print(a - b)
  • 数组乘除法:
print(a * b)
print(a / b)
  • 数组的维度操作:
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print(matrix.shape)
print(matrix.T)

4. 数组的切片与索引

NumPy 的切片与索引操作让我们可以像切蛋糕一样轻松地从数组中获取数据:

  • 基本切片:
array = np.array([1, 2, 3, 4, 5])
print(array[1:4])
  • 多维数组的切片:
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(matrix[:2, 1:3])

通过切片和索引,可以方便地访问和修改数组中的数据。

5. 数学运算与广播机制

NumPy 提供了一整套丰富的数学运算功能,而它的广播机制则是 NumPy 的一个神奇之处,允许不同形状的数组进行数学运算:

  • 数学运算:
array = np.array([1, 2, 3])
print(np.sqrt(array))
print(np.exp(array))
  • 广播机制:
a = np.array([1, 2, 3])
b = np.array([[0], [10], [20]])
print(a + b)

这种广播机制使得我们可以在不显式地复制数据的情况下,对数组进行高效的运算。

6. NumPy 的常见函数

NumPy 内置了许多常见的函数,这些函数大大简化了我们的工作:

  • 求和与平均:
array = np.array([1, 2, 3, 4])
print(np.sum(array))
print(np.mean(array))
  • 排序与查找:
array = np.array([4, 2, 1, 3])
print(np.sort(array))
print(np.argsort(array))
  • 矩阵运算:
matrix = np.array([[1, 2], [3, 4]])
print(np.linalg.inv(matrix))

这些函数是我们在数据分析科学计算中常用的工具。

7. NumPy 与其他库的配合使用

NumPy 作为 Python 科学计算的基础,与其他库(如 Pandas、Matplotlib)有着天然的配合关系:

  • 与 Pandas 配合:
import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
print(df.to_numpy())
  • 与 Matplotlib 配合:
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()

NumPy 为这些库提供了强大的数值计算支持,使得数据分析和可视化变得更加容易。

8. 总结

NumPy 是 Python 科学计算的基石,其丰富的功能和强大的性能让它在数据处理、科学计算、机器学习等领域成为了不可或缺的工具。通过这篇文章的介绍,你应该已经掌握了 NumPy 的基础知识,并能够开始在自己的项目中使用它了。

标签

在这里插入图片描述


http://www.ppmy.cn/news/1508842.html

相关文章

⌈ 传知代码 ⌋ 基于ROS的气体浓度建图

💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

网络通信(基于TCP/IP实现客户端/服务器的通信)

编程结构 被连接者需要完成的任务(服务端): 1、创建socket内核对象,内核创建完成后会返回它的描述符(该描述只是为了完成连接,三次握手) 2、准备本机地址(ip地址端口号) 3、绑定(把本机地址与s…

RCE之无参数读取文件

什么是无参数&#xff1f; 顾名思义&#xff0c;就是只使用函数&#xff0c;且函数不能带有参数&#xff0c;这里有种种限制&#xff1a;比如我们选择的函数必须能接受其括号内函数的返回值&#xff1b;使用的函数规定必须参数为空或者为一个参数等 例题&#xff1a; <?…

麻雀搜索算法(SSA)与支持向量机(SVM)结合的预测模型(SSA-SVM)及其Python和MATLAB实现

### 引言 随着科技的快速发展&#xff0c;锂离子电池被广泛应用于电动汽车、便携式电子设备以及可再生能源存储等领域。有效预测锂离子电池的剩余寿命&#xff08;Remaining Useful Life, RUL&#xff09;对于提升电池的使用安全性和经济性具有重要意义。传统的RUL预测方法往往…

Covalent(CXT)与Sei合作,为扩展以太坊应用提供数据解决方案

Covalent Network&#xff08;CXT&#xff09;是领先的模块化数据基础设施层&#xff0c;致力于解决长期数据可用性&#xff0c;并为 AI 提供可验证的结构化数据。目前 Covalent Network&#xff08;CXT&#xff09;已经与首个并行化 EVM 区块链——Sei 达成了新的合作&#xf…

TCFormer:通过标记聚类Transformer实现视觉识别

摘要 Transformer在计算机视觉领域得到了广泛应用&#xff0c;并取得了显著成功。大多数最先进的方法将图像分割成规则网格&#xff0c;并用视觉标记表示每个网格区域。然而&#xff0c;固定的标记分布忽略了不同图像区域的语义含义&#xff0c;导致性能次优。为了解决这个问题…

王立铭脑科学50讲——02篇,心智活动是如何发生的

王立铭脑科学50讲——02篇&#xff0c;心智活动是如何发生的 我对课程中感兴趣的点 1、脑的结构可以细分到一个个神经细胞&#xff0c;但脑的功能神经细胞彼此连接实现的。 我由此想到&#xff0c;人工神经网络&#xff0c;也是利用激活函数、权重值、偏置量来模拟人工神经网…

PHP项目任务系统小程序源码

&#x1f680;解锁高效新境界&#xff01;我的项目任务系统大揭秘&#x1f50d; &#x1f31f; 段落一&#xff1a;引言 - 为什么需要项目任务系统&#xff1f; Hey小伙伴们&#xff01;你是否曾为了杂乱的待办事项焦头烂额&#xff1f;&#x1f92f; 或是项目截止日逼近&…