【2】数据分析基础(关于Numpy 的基础 1)

ops/2024/12/13 17:26:49/

NumPy

NumPy是什么?
NumPy(Numerical Python的缩写)是一个开源的Python科学计算模块,其中包含了许多实用的数学函数,用来处理数值型数据

优点:

1. 很多更高级的扩展模块都依赖于NumPy,比如pandas

2. NumPy中有计算平均数、中位数等数学相关的内置函数,可以在代码中省去很多的循环语句,帮助我们更加快速和科学地进行计算

3. NumPy提供了一个叫做N维数组的数据结构,它和Python中的列表list类似,但前者的输入输出性能远优于后者

学习目标1
要想深入了解NumPy,我们就必须先从它的核心 —— N维数组(ndarray)开始学习。
同时NumPy中,N维数组(ndarray)作为最重要和使用最频繁的对象。
接下来,我们将分别学习以下几个方面:
1. N维数组的基本概念和常用属性
2.创建一个N维数组
3. N维数组的运算

N维数组

定义

顾名思义,N维数组(ndarray)是一个多维数组,描述了相同类型数据的集合。

隐喻

如图所示,各个科目的分数形成了一个4x3的二维数组,该数组就是一个同一数据类型 —— 分数(整型int)的集合。

有很多属性可以描述N维数组,最常用的两个属性分别是数据类型维度
比如,上一页中,我们用了「整型(int)」「二维」来描述示例中的数组,依次对应的就是数组的数据类型维度这两个属性。

NumPy数组的 数据类型 指的是数组中存储的元素类型,可以是:整型(int)、浮点型(float)、布尔型(bool)等。
 

需要注意的是,NumPy数组中的所有元素类型必须是一致的

Ps:

一维空间相当于一根直线。在这样的空间里,只能前进或者后退,所以只有长度的概念。
二维空间其实就是一个平面。在这个平面上,除了前进、后退以外,还可以向左或者向右,所以有长度和宽度的概念。
三维空间就像是一个立方体。在这个空间里,除了前进、后退、向左和向右移动外,还可以向上或者向下,所以有长度、宽度和高度的概念。

NumPy数组的维度和我们平常说的维度非常相似,接触最多的通常是一维(1D)和二维(2D)数组,可以通过中括号[ ]的层数来确定。

[...]表示一维数组,和Python中的列表长得很像。
在使用print()输出时,它们的区别在于数组之间的元素是用空格分隔,而列表是以逗号分隔。
一维数组的所有元素都在同一「行」里,一行中可以有很多元素。

[[...]]表示二维数组。
二维数组中的每个元素都是一个一维数组,并且每一行的元素数量都是一致的。在二维数组中:
行数代表二维数组中一维数组的数量;

列数代表一维数组中元素的数量。

以此类推,[[[...]]]表示三维数组,三维数组中的每个元素都是一个二维数组;[[[[...]]]]表示四维数组,四维数组中的每个元素都是一个三维数组...

Like:

有很多属性可以描述N维数组,最常用的两个属性分别是数据类型维度

在了解完N维数组的概念和常用属性后,我们来学习如何创建N维数组。在使用NumPy创建N维数组前,我们需要先安装numpy

导入与安装numpy

安装完后,下一步就是导入numpy
根据NumPy官方文档的倡导,在导入numpy时通常会使用「np」作为numpy的简写,方便以后调用
导入numpy的具体代码如下:

# 使用import导入numpy,并使用"np"作为该模块的简写

import numpy as np

在终端输入pip install numpy安装模块。
在代码中使用import numpy as np导入模块。

如图所示:

创建n维数组

在导入numpy后,我们就可以开始创建N维数组啦~
创建N维数组的方式有很多,最简单的一种方式就是调用NumPy模块中的array()函数。

任意序列型对象,也就是列表、元组、数组等数据结构,都可以作为参数传入。
该函数会返回传入的参数所对应的数组。
接下来,通过依次分析如何创建一维数组和二维数组,来更好的理解这个函数吧。

创建N维数组

np.array()

这三行代码创建了一个叫做“arr”的一维数组,并输出了该数组。
第一行导入了numpy,并使用"np"作为该模块的简写。
第二行将一个元素全是整型的列表作参数传入到np.array()中,并将函数返回的结果赋值给了变量arr
 

第三行输出了该数组,也就是[1 2 3 4 5]

函数np.array()

np.array()是NumPy中用来创建N维数组的函数。

import numpy as np

arr =  np.array([1, 2, 3, 4, 5])

print(arr)

[1 2 3 4 5]

一个列表

作为参数传入np.array()函数中,该函数将返回一个对应的数组。

任意序列型对象,也就是列表、元组、数组等数据结构,都可以作为参数传入。

import numpy as np

arr =  np.array([1, 2, 3, 4, 5])

print(arr)

[1 2 3 4 5]

变量名

函数返回的一维数组赋值给了变量arr。

[1 2 3 4 5]

再加一个例子:

在学习了N维数组的概念、常用属性以及如何创建一个N维数组后,我们来继续学习N维数组的计算


http://www.ppmy.cn/ops/141591.html

相关文章

国产物联网平台(IotSharp+IoTGateway+Influxdb)快速上手

环境说明: Visual Studio 2022 CommunityIotSharp代码:https://github.com/IoTSharp/IoTSharp.gitIoTGateway版本:v2.1.1Node版本:v20.18.1Influxdb版本:v2.7.11 安装Node Node.js官网 官网下载并安装,…

Android Studio 控制台输出的中文显示乱码

1. Android Studio 控制台输出的中文显示乱码 1.1. 问题 安卓在调试阶段,需要查看app运行时的输出信息、出错提示信息。乱码,会极大的阻碍开发者前进的信心,不能及时的根据提示信息定位问题,因此我们需要查看没有乱码的打印信息。…

机器学习周报(12.2-12.8)

文章目录 摘要Abstract Vision Transformer1 原理2 代码 摘要 本周学习了Vision Transformer (ViT) 的基本原理及其实现,并完成了基于PyTorch的模型训练、验证和预测任务。深入理解了ViT如何将图像分割成patch作为输入序列,并结合Transformer Encoder处…

Pydantic中的discriminator:优雅地处理联合类型详解

Pydantic中的discriminator:优雅地处理联合类型详解 引言1. 什么是discriminator?2. 基本使用示例3. discriminator的工作原理4. 更复杂的实际应用场景5. 使用建议6. 潜在陷阱和注意事项结论最佳实践 引言 在Python的类型系统中,有时我们需要…

使用 XAML 和 C# 旋转 3D 立方体

此示例演示如何使用 XAML 显示和旋转 3D 立方体。它显示一个带有滚动条的蓝色三维立方体,您可以使用滚动条旋转立方体以从不同方向查看它。 下面显示了该程序的完整 XAML 代码。XAML 代码处理所有用户交互,包括旋转立方体,因此该示例不需要任…

Netty 的 SSL/TLS 安全通信

SSL/TLS(Secure Sockets Layer/Transport Layer Security)协议是网络通信中常用的加密协议,用于确保客户端和服务器之间数据的安全性与完整性。SSL/TLS 通过对数据进行加密和身份验证,可以防止数据泄露和篡改。 在基于 Netty 的应…

【jvm】内存溢出内存不够的原因

目录 1. 内存分配与回收问题2. 代码逻辑问题3. JVM参数设置不当4. 系统资源限制 1. 内存分配与回收问题 1.堆内存不足:应用程序申请的内存超过了JVM堆内存的限制,导致内存溢出。代码中可能存在内存泄漏,即对象在不再需要时仍被引用&#xff…

【强化学习】表格型方法 李宏毅 蘑菇书 第三章

本文主要针对查找表的强化学习方法(表格型方法),讨论表格型方法是什么,他的常见类型和使用的场景,常见的算法,这三个类型给具有一定基础知识的读者介绍表格方法。 主要参考李宏毅的蘑菇书,在线…