Numpy库介绍
NumPy是一个的Python库,主要用于对多维数组执行计算。 NumPy这个词来源于两个单词-- Numerical [nju??mer?kl] (数值;数值法;数值的;数字的)和 Python。主要用来进行数值计算。 有以下几个特点: 1.numpy内置了并行运算功能,当系统有多个核心时,做某种计算时,numpy会自动做并行计算。 2.Numpy底层使用C语言编写,其对数组的操作速度不受Python解释器的限制,效率远高于纯Python代码。 3.有一个强大的N维数组对象Array [??re?] (数组:相同数据类型的集合。可以简单理解为一种类似于列表的东西,只不过这个列表里的元素类型是相同的)。 4.实用的线性代数、傅里叶变换和随机数生成函数。 与列表功能的异同 Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。 Python列表可以存储一维数组,通过列表的嵌套可以实现多维数组。 两者都是数据容器,索引都是从0开始,那么为什么还需要使用Numpy呢? Numpy对数组的操作和运算进行了优化,数组的存储效率和输入输出性能远优于Python中的嵌套列表,数组越大,Numpy的优势就越明显。通常Numpy数组中的所有元素的类型都是相同的,而Python列表中的元素类型是任意的,所以在通用性能方面Numpy数组不及Python列表。 Numpy优化:例如在科学计算中,Numpy数组可以省掉很多循环语句,代码使用方面比Python列表简单的多。 将相同长度的数组与列表内的每个元素都进行平方,查看两者所需时间。
import numpy as np
import time
t1=time.time()
a=[]
for x in range(1000000):
a.append(x)
t2=time.time()
print(t2-t1)
t3=time.time()
b=np.arange(1000000)**2
t4=time.time()
print(t4-t3)
python 所有的库都是围绕者对象来进行操作的,numpy 也不例外,接下我们来依据numpy库 的重要对象 Ndarray来进行学习。
Ndarray对象的创建
一个对象有两个重要特征:属性和方法。
Ndarray对象的五个常见属性: .ndim ; .shape ; .size ; .dtype ; .itemsize
import numpy as np
a=np.array([[1,2,3],[4,5,6]],dtype='int8')
print(f'秩,即轴的数量或维度的数量:{a.ndim}')
print(f'ndarray对象的尺度,也就是几行几列:{a.shape}')
print(f'ndarray对象中的元素个数:{a.size}')
print(f'ndarray对象中元素的类型:{a.dtype}')
print(f'ndarray对象中元素的大小:{a.itemsize}')
print(f'对象内容:\n{a}',f'什么类型:{type(a)}',sep='\n')
Ndarray对象中元素的类型 与列表对象中元素可以是六种标准数据类型不同,Ndarray对象中元素的类型必须是数字类型,而且一个Ndarray对象中只能出现同一种数字类型,常见的可分为四种:布尔:bool,整型:int,浮点:float,无符号整型:uint。 未完待续
|