Python之NumPy库

NumPy库的名字由“Numerical Python”缩写而来。NumPy库是pandas库的基础,NumPy库的知识并不复杂,主要是为了学习pandas库做铺垫。如果是利用Anaconda安装的Python,则自带NumPy库,无须单独安装。

注:以下示例代码均是在Jupyter Notebook上进行的。

1.NumPy库与数组

NumPy库的主要特点是引入了数组的概念,和python的列表有点类似,上代码演示:

import numpy as np  # 用np代替numpy,让代码更简洁
a = [1, 2, 3, 4]  # 创建列表a
b = np.array([1, 2, 3, 4])  # 从列表a创建数组b,array就是数组的意思
print(a)
print(b)
print(type(a))  # 打印a的类型
print(type(b))  # 打印b的类型

第1行引入NumPy库的代码写为“import numpy as np”,这样之后编写代码就可以用np代替numpy,比较简洁。第3行代码中的np.array()函数用于从列表创建数组。输出结果如下:
在这里插入图片描述
接下来通过索引和切片访问列表和数组中的元素,代码如下:

print(a[1])
print(b[1])
print(a[0:2])
print(b[0:2])

输出结果如下:
在这里插入图片描述
从输出结果可以看出,列表和数组有着相同的索引机制,唯一的区别就是数组中的元素通过空格分隔,而列表中的元素通过逗号分隔。

2.数组与列表的区别

从以上的分析可以看出,NumPy的数组和列表非常的相似,之所以NumPy要引入数组,而不直接使用列表,主要有以下两个目的。

1.为了能更好的支持数学运算,上代码演示:

 c = a * 2
 d = b * 2
 print(c)
 print(d)

运行结果如下。
在这里插入图片描述
可以看到同样做乘法运算,列表是把元素复制了一遍,而数组则是对每个元素做了乘法。

2.列表存储的是一维数据,而数组则能存储多维数据,一维可以理解为一行,多维则类似于平面(二维)、立方体(三维)这样,表格就是二维的,有行、列属性,做一下代码示例,理解起来就会更直观些:

e = [[1, 2], [3, 4], [5, 6]]  # 列表里的元素为小列表,存储在一行
f = np.array([[1, 2], [3, 4], [5, 6]])  # 创建二维数组的一种方式,以行、列的表格方式存储

列表e和数组f的打印输出结果如下:
在这里插入图片描述
可以看到,列表e虽然包含3个小列表,但其结构是一维的。而数组f则是3行2列的二维结构。

3.创建数组的几种方式

  1. NumPy.array(列表),如以下代码示例:
# 创建一维数组
b = np.array([1, 2, 3, 4])
# 创建二维数组
f = np.array([[1, 2], [3, 4], [5, 6]])
  1. np.arange()函数来创建一维数组,括号里可以输入1~3个参数,会得到不同的效果。演示代码如下:
# 1个参数:参数值为终止值,起始值取默认值0,步长取默认值1,左闭右开
x = np.arange(5)
# 2个参数:第1个参数为起始值,第2个参数为终止值,步长取默认值1,左闭右开
y = np.arange(5, 10)
# 3个参数:第1个参数为起始值,第2个参数为终止值,第3个参数为步长,左闭右开
z = np.arange(5, 10, 0.5)

x、y、z的打印输出结果如下:
在这里插入图片描述
3. np.random中的函数可以创建随机一维数组.
4. np.arange()函数和reshape()函数,可以创建二维数组。
a = np.arange(12).reshape(3, 4)

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值