14.1 NumPy基础

news2024/12/26 11:06:49

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏:
工💗重💗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 的基础知识,并能够开始在自己的项目中使用它了。

标签
  • NumPy
  • 数值计算
  • Python
  • 数据分析
  • 科学计算

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2036318.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uni-app 吸顶方案总结

效果 页面级 uni.pageScrollTo 官方文档&#xff1a;https://uniapp.dcloud.net.cn/api/ui/scroll.html#pagescrollto 原生头部导航 uni.pageScrollTo({selector: #tabs,duration: 300 });(推荐)需要兼容自定义头部导航 <template><view id"demo1" :styl…

Sakana.ai 迈向完全自动化的开放式科学发现

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

设计模式-标识域(Identity Field)

目的 为了在内存对象和数据库行之间维护标识而在对象内保存的一个数据库标识域。 关系数据库和内存对象的区别 区分行&#xff1a;关系数据库使用键来区分数据行&#xff0c;而内存对象不需要这样一个键 引用方法&#xff1a;对象系统中通过原始内存位置直接区分对象&#x…

【3】字节码文件的组成

一.应用场景与学习路线 二.以正确的姿势打开文件 使用记事本和NotePad打开字节码文件很不方便 三.字节码文件的组成

Spring MVC源码详解

什么是Spring MVC &#xff1f; Spring MVC就是SpringMVC。 Spring就不介绍了&#xff0c;什么是MVC&#xff1f; M&#xff1a;模型&#xff0c;javabeanV&#xff1a;视图&#xff0c;如jspC&#xff1a;控制层&#xff0c;如Controller、Servlet SpringMVC请求处理流程 用…

图像处理(空域变换(上))

数字图像处理 参考视频 Task 1 亮度变换 1. 幂律变换 伽马变换本质上是对图像矩阵中的每个值进行幂运算。 幂函数 s c r γ ( r ∈ [ 0 , 1 ] ) \text{幂函数}scr^γ(r\in[0,1]) 幂函数scrγ(r∈[0,1]) 其中&#xff0c;r为灰度图像的输入值&#xff08;原来的灰度值&…

<数据集>集装箱缺陷识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;3793张 标注数量(xml文件个数)&#xff1a;3793 标注数量(txt文件个数)&#xff1a;3793 标注类别数&#xff1a;4 标注类别名称&#xff1a;[DAMAGE - DEFRAME, DENT, DAMAGE - RUST, DAMAGE - HOLE] 序号类别名…

高分六号卫星助力农业监测_卫星介绍_论文分享_数据获取

卫星遥感已经成为农业发展的重要支持工具。《“数据要素X”三年行动计划(2024-2026年)》指出,在现代农业交通运输、应急管理等领域鼓励探索利用遥感数据。为什么高分六号会经常应用于农业检测呢&#xff1f;本文将介绍高分六号卫星的农业检测特性、在农业应用中的优势、具体农业…

Video视频抽帧和WebCodecs API视频抽帧介绍

目录 mp4Box抽帧 ffmpeg抽帧 video元素抽帧 WebCodecs 核心API 视频文件是一个容器&#xff0c;里面有很多不同的轨道信息。如&#xff1a;图像、声音、字幕等。而视频图像信息又是由一系列图片序列帧的集合。如10秒时长的视频&#xff0c;假设每秒30帧。那大概有300条图像…

二叉树——9.找树左下角的值

力扣题目链接 给定一个二叉树&#xff0c;在树的最后一行找到最左边的值。 示例&#xff1a; 输出&#xff1a;7 题干很简单&#xff0c;找到树的最后一行&#xff0c;在该行找到最左边的值&#xff0c;结合完整代码进行分析。 完整代码如下&#xff1a; class Solution:d…

Django后台数据获取展示

​ 续接Django REST Framework&#xff0c;使用Vite构建Vue3的前端项目 1.跨域获取后台接口并展示 安装Axios npm install axios --save 前端查看后端所有定义的接口 // 访问后端定义的可视化Api接口文档 http://ip:8000/docs/ // 定义的学生类信息 http://ip:8000/api/v1…

Springboot发邮件如何配置SMTP服务器信息?

Springboot发邮件安全性考虑&#xff1f;如何用Springboot发信&#xff1f; 在 SpringBoot中配置邮件发送功能相对简单&#xff0c;但需要正确设置 SMTP 服务器信息。AokSend将详细介绍如何在 SpringBoot应用程序中配置 SMTP 服务器信息&#xff0c;以实现邮件发送功能。 Spr…

如何构建一个高效的编程学习笔记系统(万字总结)

你是否曾经在编程学习的海洋中迷失方向&#xff1f;是否感觉自己学了很多&#xff0c;却总是记不住关键知识点&#xff1f;别担心&#xff0c;今天我们将一起探索一种革命性的笔记方法&#xff0c;它将彻底改变你的学习体验&#xff01; 目录 引言&#xff1a;为什么我们需要…

鸿蒙(API 12 Beta3版)【本地媒体会话概述】 音视频播控服务

交互过程 本地媒体会话的数据源均在设备本地&#xff0c;交互过程如图所示。 此过程中涉及两大角色&#xff0c;媒体会话提供方和媒体会话控制方。 说明 媒体会话控制方为系统应用&#xff0c;三方应用可以成为媒体会话提供方。 本地媒体会话中&#xff0c;媒体会话提供方通…

[大模型实战] DAMODEL云算力平台部署LLama3.1大语言模型

[大模型实战] DAMODEL云算力平台部署LLama3.1大语言模型 目录 一、LLama3.1二、DAMODEL云算力平台2.1 提供的服务2.1.1 AI训练2.1.2 AI推理2.1.3 高性能计算2.1.4 图像&#xff0f;视频渲染2.1.5 定制化部署 2.2 支持的GPU 三、在DAMODEL部署LLama3.13.1 在DAMODEL创建实例&…

【案例43】打开节点-后台任务日志优化案例

问题现象 通过SPR日志发现 打开节点-后台任务日志节点sql调用严重。 通过nmc查看&#xff0c;后台线程耗时20s &#xff0c;基本都卡在sql层面 一直在执行如下sql selectl.pk_workingtasklog frompub_workingtasklog l inner joinpub_alertregistry ron l.pkregistry r.pk_a…

Black Forest Labs 的 Flux——文本转图像模型的下一个飞跃,它比 Midjourney 更好吗?

一、前言 Black Forest Labs是开创性稳定扩散模型的团队&#xff0c;现已发布Flux——一套最先进的模型&#xff0c;有望重新定义 AI 生成图像的功能。但 Flux 是否真正代表了该领域的飞跃&#xff1f;它与 Midjourney 等行业领导者相比如何&#xff1f;让我们深入探索 Flux 的…

【Kubernetes】Service 概念与实战

Service 概念与实战 1.通过 Service 向外部暴露 Pod2.Service 的多端口设置3.集群内部的 DNS 服务4.无头 Service 在 Kubernetes 中部署的应用可能对应一个或者多个 Pod&#xff0c;而每个 Pod 又具有独立的 IP 地址。Service&#xff08;服务&#xff09;能够为一组功能相同的…

DI (providedIn: XXXModule)

angular版本为^17.3.0&#xff1b; 依赖注入Module 代码结构如下&#xff1a; 点击后为 demo2 works!demo2 providedIn Demo1Module depdemo2 works!demo2 providedIn Demo1Module 打包后大小为 改写为 demo2去掉 imports: [Demo1Module], 打包后大小为 结果比较&#…

DAMA学习笔记(十五)-数据管理组织与角色期望

1.引言 随着数据领域的快速发展&#xff0c;组织需要改进管理和治理数据的方式。当前&#xff0c;大多数组织正面临着越来越多的数据。这些数据格式多样、数量 庞大&#xff0c;并来源于不同的渠道。由于数据数量和种类的增加&#xff0c;加剧了数据 管理的复杂性。与此同时&am…