Numpy 概述|学习笔记

简介: 快速学习 Numpy 概述

开发者学堂课程【Python 常用数据科学库Numpy 概述】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/546/detail/7461


Numpy 概述

内容介绍

一、检测 Numpy 库是否安装成功

二、Numpy 库的使用

三、Ndarray 结构


一、检测 Numpy 库是否安装成功

当我们想使用 Numpy 的时候,首先要确保的一件事情就是: Numpy 库已经安装完成。

如何判断 Numpy 库已经安装完成?我们可以先进行操作来判断。首先,我们要将 Numpy 库导入。代码如下:

import numpy as np //别名为 np

之后,我们会一直使用 np 来表示当前的 Numpy 。接着执行当前的代码,按下 shift +回车,查看结果。如果说 In [ ]的[ ]里面最先出现一个*,之后变成1,这就说明 Numpy 库已经安装好了。安装好之后,我们就可以使用 Numpy 来执行一系列的操作了。


二、Numpy 库的使用

1.理解 Numpy 库

如果要求做事效率高,短时间内完成最复杂的任务,例如:一些矩阵的运算、一些随机数的运算、制作一些矩阵等,这些如果使用 Python 自己写的话,是非常麻烦且缓慢的。而 Numpy 库当中是分装好的,我们只需要去调用 Numpy 库里面的函数、接口,就可以帮助我们完成一个比较复杂的操作,而且有些 Python 没有的功能, Numpy 当中也有,所以相对而言, Numpy 库是非常方便的。

2.与 list 结构进行比较

比如,首先指定一个 array 数组,该数组构成了一个 list ,之后想对 list 当中的每一个元素执行一个加1的操作。如何执行,大家的想法可能是去再写一个 list 的结构,在结构当中一个一个的值往里面填,填充的是原来结构当中的每一个值再加上1。这样是很麻烦的,我们是否可以直接在 array 上+1就可以了,观察该操作是否可以运行。代码如下:

array = [1,2,3,4,5]

array + 1

运行结果显示错误,代码如下:

TypeError    Traceback (most recent call last)

<ipython-input-2-c54151a3da40> in <module> ()

1 array = [1,2,3,4,5]

----> 2 array + 1

TypeError: can only concatenate list (not “int”) to list

结果错误告诉我们,对于当前的 list 结构而言,是不能在结构里面直接加上一个值的,不能直接进行该操作。既然这个 list 当中无法满足这样的需求,那我们可以看 Numpy 当中是否能够帮我们解决这个问题。


三、Ndarray 结构

现在,我们仍指定一个 array ,但此刻的 array 不是一个 list 结构,我们使用 Numpy 当中的一个底层,即 ndarray 的一个结构,一会儿我们可以打印 ndarray 的 type 值来看看。

1.构造 ndarray 结构

首先我们要构造一个 ndarray ,先将之前的 array 数组结构输入,接着打印 array 的 type 值看会出现什么结果。代码如下:

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

print (type(array))

<class “numpy.ndarray”>

这说明,我们现在构造出来的不是一个 list 的结构,而是 Numpy 当中一个核心的最底层的结构,即 ndarray 的结构。总结一下就是,原来是一个 list 的结构,现在是一个 ndarray 的结构。

2.使用 numpy 库进行格式转换

那么 Numpy 做的格式转换有什么用呢?我们给 array 加1,在打印 array 的值,观察输出结果。代码如下:

array += 1

array

array([2, 3, 4, 5, 6])//输出结果

结果由原来的1,2,3,4,5,变为了2,3,4,5,6。就说明在 ndarray 的结构中,我可以对每一个元素都执行加1的操作;也说明现在 ndarray 的结构功能是更丰富一些的。

(1)对数组赋值,进行相加

①对 array 进行赋值,代码如下:

array2 = array + 1

array2

array([3, 4, 5, 6, 7])//输出结果

②接着,继续对 array 进行新的赋值,代码如下:

array2 +array

array([ 5, 7, 9, 11, 13])//输出结果

上述代码均可以执行。 ndarray 结构,即里面加上一个1或者加上任何一个数,相当于每一个位置都进行了一个相加。但如果说,现在一个 array 里面有5个,另一个 array 里面也有5个,这两个 array 相加就相当于对应位置各自的进行相加,也会判断当前 array 里面有多少个值,如果值是一样的,就进行对应位置相加;如果是只加一个值,那就相当于只做每个位置加1的事。

(2)对数组赋值,进行相乘

两个 array 结构不仅能相加,也能相乘,代码如下:

array2 * array

array([ 6, 12, 20, 30, 42])//输出结果

上述赋值、相乘的操作都是可以指定出来的。

(3)提取数组中的值

对于 array 的一个结构而言, array 结构里有一些值,想取一些值出来是否可以。代码如下:

array[0]  

2//输出结果

array[3]

5//输出结果

以上取值代码均说明,每个值还可以通过所有的结构来进行一个取值的。那是否可以用切片代码来做?也可以,这个就是 Numpy 的最基本的结构,即最底层是一个 ndarray 的结构。

3.调用 array 结构中的属性

对于该 array 结构而言,我们就可以取调用它当中的一些属性,代码如下:

array

array ([2, 3, 4, 5, 6])//输出结果

array.shape

(5,)//输出结果

编写一个 list 并打印结果查看,代码如下:

tang_list = [1,2,3,4,5]

tang_list.shape

运行结果显示没有,代码如下:

AttributeError   Traceback (most recent call last)

<ipython-input-13-767455014c87> in <module> ()

1 tang_list = [1,2,3,4,5]

----> 2 tang_list.shape

AttributeError:’list’object has no attribute’shape’

结果说明 list 当中没有这个值,但是 array 当中确有 shape 的属性,这说明这个 array 实际上是一个数组的结构,和 list 是不太一样的,所以 array 调用的内容也更加丰富了,相当于 Numpy 在基础上做了许多的分装,让我们在使用时也更加方便。 shape 的意思是一个数组中有几个元素,打印出来就是几。 list 当中就会做一个 list of list 的格式,观察自己所写的矩阵是几行几列的,这样是比较繁琐的。在 ndarray 或者 numpy 当中,想观察一个矩阵的结构、数组的结构,在定义的数组名称后直接加上“.shape ”就可以进行观察了,是非常方便的。

4.构造多维数组

如何构造一个多维数组?之前是 list of list 的格式,但现在使用 numpy array 的格式,里面的结构不变依旧是 list of list 的格式,就转换成了 numpy ndarray 的格式。说明之前的 list 结构想在 numpy 当中使用,就需要进行转换。转换成为 ndarray 的结构,我们能使用的就更多了,之后会为大家进行单独的讲解, ndarray 结构当中常用方法也很多,大家目前对其了解就好。总而言之, Numpy 的底层就是 ndarray ,在 ndarray 当中,我们所能利用的信息也是很多的。我们要确保最重要的事情就是 Numpy 库能导入、能执行,这样后面的操作就会变简单了。

相关文章
|
11月前
|
机器学习/深度学习 存储 数据采集
学习笔记: 机器学习经典算法-Numpy软件
机器学习经典算法-个人笔记和学习心得分享
83 0
|
12月前
|
数据处理 索引 Python
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(4)
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(4)
243 0
|
12月前
|
Java 数据处理 索引
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(3)
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(3)
142 0
|
12月前
|
SQL 存储 Java
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(2)
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(2)
231 0
|
12月前
|
SQL Java Go
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(1)
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(1)
264 0
|
Python
numpy学习笔记1---python学习笔记32
numpy学习笔记1---python学习笔记32
74 0
|
Python
【Numpy库学习笔记】Numpy中dim、shape和size的理解
【Numpy库学习笔记】Numpy中dim、shape和size的理解
242 0
|
移动开发 Python
Python学习笔记第四十二天(NumPy 字符串函数)
Python学习笔记第四十二天讲解numpy.char.add()、numpy.char.multiply()、numpy.char.center()、numpy.char.capitalize()、numpy.char.title()、numpy.char.lower()、numpy.char.upper()、numpy.char.split()、numpy.char.splitlines()、numpy.char.strip()、numpy.char.join()等用法。
84 0
Python学习笔记第四十二天(NumPy 字符串函数)
|
Python
Python学习笔记第四十一天(NumPy 位运算)
Python学习笔记第四十一天讲解bitwise_and、bitwise_or、invert、left_shift、right_shift的用法。
99 0
Python学习笔记第四十一天(NumPy 位运算)
|
索引 Python
Python学习笔记第四十天(Numpy 数组操作(下))
Python学习笔记第四十天讲解连接数组、分割数组、数组元素的添加与删除的用法。
64 0
Python学习笔记第四十天(Numpy 数组操作(下))