numpy入门(超级简单!)

简介: numpy入门(超级简单!)

Numpypython中的一个运算速度非常快的一个数学库,它非常重视数组,它允许你在python中进行向量和矩阵计算,并且由于许多底层函数实际上是C编写的,因此你可以体验在原生永远无法体验的速度

 

数组基础

创建一个数组

Numpy围绕这些称为数组的事物展开,实际上它被称之为ndarrays

 

image.png

以上代码显示了创建数组的4种不同方法,最基本的方法是将序列传递给Numpyarray()函数,可以传递任何序列(类数组),而不仅仅是常见列表(list)数据类型

 

上面数组的示例是如何使用Numpy表示向量,接下来是使用多维数组表示矩阵和更多的信息

image.png

这段代码打印出了矩阵a中第3(索引为2) 5 (索引为4)的元素值,在python中,数组的索引从0开始,所以[2 4]表示矩阵中的第3行第5列的元素值,这里的值是25

综上所述,这段代码创建了一个二维数组,并且打印出了该数组中特定位置得元素值

 

 

多维数组切片

切片多维数组比1D数组复杂一点,并且在使用Numpy时也会经常需要使用到

image.png

通过对每个逗号分隔得维度执行单独的切片,因此,对于2D数组,我们的第一片定义了行的切片,第二片定义了列的切片

只需要输入数字就可以指定行或列,上面的第一个示例从数组中选择第0

下面的图说明了给定的示例切片是如何工作的

image.png

 

 

数组属性

在使用Numpy时,你会想知道某些信息,这个包里面包含了很多的便捷方法

image.png

打印出数组a的形状,即它有几行几列,结果为(55),表示a是一个55列的二维数组

image.png

打印出a中元素的数据类型,结果为init32,表示a中的元素类型是32

image.png

打印出a中元素的总数目,结果为25

image.png

 

打印出a中每个元素所占用的字节数,结果为4,表示每个元素占用4个字节

image.png

打印出数组a占用的总字节数,结果为100,表示占用了100个字节,25个元素,每个元素4个字节

 

使用数组

基本操作符

只是能够从数组中创建和检索元素和属性不能满足需求,有时也需要对它们进行数学运算。

完全可以使用四则运算符+-/ *来完成运算操作

image.png

除了dot(0之外,这些操作符都是对数组进行逐元素运算,比如(a, b, c) + (d, e, f)的结果就是(a+d, b+e, c+f)它将分别对一个元素进行配对,然后对他们进行运算,返回的结果是一个数组,注意,当使用逻辑运算符如'<''>'的时候,返回的将是一个布尔型数组

dot()函数计算两个数组的点积,返回的是一个标量(只有大小没有方向的一个值)而不是数组

 

索引进阶

花式索引

花式索引是获取数组中我们想要的特定元素的有效方法

image.png

第一行代码是,从0开始,以步长为10递增的数字,知道小于100为止

第二行就是创建了一个包含索引的列表indices,列表中指定了数组a中选择元素的位置,即选择索引为15-1的元素

第三行值将这些索引的数据保存到b

输出结果为

image.png

 

布尔屏蔽

布尔屏蔽是一个有用的功能,它允许我们根据指定的条件检索数组中的元素

image.png

上面的示例显示了如何进行布尔屏蔽,你索要做的就是将数组传递给涉及数组的条件,它将为你提供一个值的数组,为该条件返回true

image.png

利用这些条件来选择图上的不同点,蓝色点(在图中还包括绿点,但绿点掩盖了蓝色点),显示大于0的所有点,绿点表示值大于0且小于一半π的所有点

 

缺省索引

不完全索引是从多维数组的第一个维度获取索引或切片的一种方便方法,例如,数组a=[12345][678910],那么[3]将在数组的第一个维度中给出索引为3的元素,这里的值是4

image.png

 

 

Where函数

where()函数是一另外一个根据条件返回数组中的值的有效方法,只需要把条件传递给这个函数,就会返回一个使得到条件为真的列表

image.png

输出结果

image.png

 

1:这行代码使用Numpyarange()函数创建了一维数组,包含0开始,每隔10个数增加一次的整数序列,最大值为90

2:这行代码使用了where函数返回了一个包含小于50的索引数组b,该函数检查每个数组元素,如果该元素小于,则将其对应的索引添加到数组b中,因此这个例子中,数组b包含了0-4的整数,表示原始数组中小于505个元素的索引

3:这行代码与上面的语句类似,[0]是为了排除返回元组的第二个元素,因此,在这个例子中,数组c包含了5-9的整数,表示原始数组中大于等于50的元素索引

 

 

 

 

 

目录
相关文章
|
5月前
|
数据可视化 数据挖掘 C++
一文入门数分三剑客--Numpy、Pandas、Matplotlib
一文入门数分三剑客--Numpy、Pandas、Matplotlib
|
7月前
|
存储 数据可视化 数据挖掘
【数据分析入门】Numpy进阶
【数据分析入门】Numpy进阶
|
7月前
|
机器学习/深度学习 PyTorch TensorFlow
[深度学习入门]Numpy基础(上)
[深度学习入门]Numpy基础(上)
|
7月前
|
机器学习/深度学习 数据挖掘 索引
【数据分析入门】Numpy基础
【数据分析入门】Numpy基础
|
7月前
|
机器学习/深度学习 数据采集 数据挖掘
【100天精通Python】Day52:Python 数据分析_Numpy入门基础与数组操作
【100天精通Python】Day52:Python 数据分析_Numpy入门基础与数组操作
58 0
|
3月前
|
C++ 索引 Python
Python Numpy入门基础(二)数组操作
Python Numpy入门基础(二)数组操作
25 0
|
4月前
|
C++ Python 索引
Python Numpy入门基础(二)数组操作
Python Numpy入门基础(二)数组操作
29 0
Python Numpy入门基础(二)数组操作
|
4月前
|
Python 索引
Python Numpy入门基础(一)创建数组
Python Numpy入门基础(一)创建数组
40 0
Python Numpy入门基础(一)创建数组
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
[深度学习入门]Numpy基础(下)
[深度学习入门]Numpy基础(下)
|
8月前
|
存储 Python
【numpy简介、入门、数组创建】
【numpy简介、入门、数组创建】