![0b40cd605fef9fee6f4ae6e2e46ad45f.png](https://i-blog.csdnimg.cn/blog_migrate/5ab40fa5c5473bd6e655f54debd948fd.png)
点击上方 蓝字 关注我们!
![767f80220d571da5bf3ce11dd295bf53.png](https://i-blog.csdnimg.cn/blog_migrate/7a057165ae0677897db0285a56505304.png)
Numpy是Python中较为常用的模块,今天我们就从Numpy的基础应用讲起,非常适合0基础的小白哦,python系列的基础课程也会持续更新。
首先,我们在运用某个模块之前需要先导入这个模块。
import numpynumpy.__version__
详解Python列表List
![581a8b3584f995b002f1f8db6fe88923.png](https://i-blog.csdnimg.cn/blog_migrate/262add3143ee7ab69d228f0d01cfb83e.png)
![68b38bf2a8a4b0c17175b36de5fdc388.png](https://i-blog.csdnimg.cn/blog_migrate/5559e1904844738ed429747e7012c405.png)
创建一个数值型的列表
L = list(range(10))L# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]type(L[0])# int
创建一个字符串列表
L2 = [str(c) for c in L]L2# ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']# 查看数据类型type(L2[0])# str
创建一个异构列表
什么是异构列表?因为Python动态类型特征,所以list里面的元素可以是不同类型,如下所示
L3 = [True, "2", 3.0, 4][type(item) for item in L3]# [bool, str, float, int]
那么这个动态的列表和固定类型的Numpy数组之间的区别是什么呢?请看下图,数组基本上包括一个指向连续数据块的指针;而列表包含一个指向指针块的指针,其中每一个指针对应一个完整的Python对象,因此列表可以用不同的数据类型进行填充。
怎么去理解上面这些专业术语呢?换句话来说,就是Array数组整个数据块共用一个指针,而List每一个元素都有一个指针,所以List具有多元动态性!
Python中的数组Array的数据类型介绍
![581a8b3584f995b002f1f8db6fe88923.png](https://i-blog.csdnimg.cn/blog_migrate/262add3143ee7ab69d228f0d01cfb83e.png)
![68b38bf2a8a4b0c17175b36de5fdc388.png](https://i-blog.csdnimg.cn/blog_migrate/5559e1904844738ed429747e7012c405.png)
首先,我们先来了解下Python中Numpy的标准数据类型,如下表所示,包括了整型,浮点型,布尔值等多种类型,可以根据自己的需求选择相应的数据类型。
运用Numpy模块创建简单的Array
![581a8b3584f995b002f1f8db6fe88923.png](https://i-blog.csdnimg.cn/blog_migrate/262add3143ee7ab69d228f0d01cfb83e.png)
![68b38bf2a8a4b0c17175b36de5fdc388.png](https://i-blog.csdnimg.cn/blog_migrate/5559e1904844738ed429747e7012c405.png)
Python中内置的数组(array)模块可用于创建统一类型的密集数组,代码里的‘i’是一个动态类型码,表示数据为整型。
import arrayL = list(range(10))A = array.array('i', L)A# output array('i', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
另外,我们可以给Python的模块取个别名,方便我们之后调用,如下代码示例。
import numpy as np# 创建一个integer类型的数组:np.array([1, 4, 2, 5, 3])
Python中的Numpy模块不同于List,其要求数组必须是同一类型的数据,如果数据类型不匹配,Numpy会向上转换,详细情况请看如下示例。
np.array([3.14, 4, 2, 3])# array([ 3.14, 4. , 2. , 3. ])
该示例中,将整型的4,2,3强行转换为float浮点型的数据。
如果你希望明确的设置数组的数据类型,请使用dtype关键字。
np.array([1, 2, 3, 4], dtype='float32')# array([ 1., 2., 3., 4.], dtype=float32)
利用python创建多维嵌套数组。
# 通过循环体创建多维数组np.array([range(i, i + 3) for i in [2, 4, 6]])array([[2, 3, 4], [4, 5, 6], [6, 7, 8]])
运用Numpy模块和内置函数高效创建Array
![581a8b3584f995b002f1f8db6fe88923.png](https://i-blog.csdnimg.cn/blog_migrate/262add3143ee7ab69d228f0d01cfb83e.png)
![68b38bf2a8a4b0c17175b36de5fdc388.png](https://i-blog.csdnimg.cn/blog_migrate/5559e1904844738ed429747e7012c405.png)
np.zeros ()创建数值为0的数组
np.zeros(10, dtype=int)# array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
np.ones()创建值为1的数组
np.ones((3, 5), dtype=float)# array([[ 1., 1., 1., 1., 1.],# [ 1., 1., 1., 1., 1.],# [ 1., 1., 1., 1., 1.]])
np.full()创建任意值的数组
np.full((3, 5), 3.14)array([[ 3.14, 3.14, 3.14, 3.14, 3.14], [ 3.14, 3.14, 3.14, 3.14, 3.14], [ 3.14, 3.14, 3.14, 3.14, 3.14]])
np.arange()创建一个现行序列数组
下列示例的具体含义为创建一个从0开始到20结束,步长为2的数组。
np.arange(0, 20, 2)# array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18])
np.linspace()创建一个5个元素的数组,这5个数均匀地分配到0-1
np.linspace(0, 1, 5)# array([ 0. , 0.25, 0.5 , 0.75, 1. ])
np.random.random()创建在0-1之间均匀分布的随机数组成的数组
np.random.random((3, 3))# array([[ 0.99844933, 0.52183819, 0.22421193],# [ 0.08007488, 0.45429293, 0.20941444],# [ 0.14360941, 0.96910973, 0.946117 ]])
np.random.normal()创建正太分布的随机数组
np.random.normal(0, 1, (3, 3))# array([[ 1.51772646, 0.39614948, -0.10634696],# [ 0.25671348, 0.00732722, 0.37783601],# [ 0.68446945, 0.15926039, -0.70744073]])
np.random.randint()创建随机整型数组
np.random.randint(0, 10, (3, 3))# array([[2, 3, 4],# [5, 7, 8],# [0, 5, 0]])
np.eye()创建单位矩阵
np.eye(3)# array([[ 1., 0., 0.],# [ 0., 1., 0.],# [ 0., 0., 1.]])
np.empty()创建整型数组成的未初始化的数组,数组的值是内存空间内的任意的值。
np.empty(3)# array([ 1., 1., 1.])
![a69fbf816fece439f7dcfdd7f9a5f9ed.png](https://i-blog.csdnimg.cn/blog_migrate/1a4fd2354720fbab9eb6ed3025664393.png)
![329e49165f6aaec4d247bb1f32bb4dc2.png](https://i-blog.csdnimg.cn/blog_migrate/ce5ca8603d4c33316a245b94c43db9d9.png)
python系列文章持续更新中
往期推荐
史上最全的统计学基础知识!错过这次再等一年!!
你的Python 基础知识是成体系的吗?这套核心知识体系思维导图送给你!
SQL知识大全(六):SQL中的开窗函数
史上最全的MySQL 字符串函数,赶紧收藏!!
SQL知识大全(五):SQL中的时间函数
这份干货请你收好,长达2万字的时间函数总结,建议收藏!
![787d8362f357f50376023277ea7465fe.png](https://i-blog.csdnimg.cn/blog_migrate/ac58cea0334b620b366bf54dbf220871.png)
分享数据知识,成就数据理想