python很方便,但也会很慢。不过它允许你访问执行用C等语言写的代码的库。Numpy就是这样一个库:它为python中的数学运算提供了一个更快速的替代方案,可以与数字组高效搭配使用,如矩阵。Numpy 是一个很大型的库。
1.导入Numpy
import numpy as np
之后就可以给函数和类型名称加上前缀np.来使用该库。
2.数据类型和形状
Numpy中处理数字的常见方式是通过ndarray对象。它们与python列表相似,但是可以有任意数量的维度。而且,ndarray支持快速的数学运算。由于它可以存储任意数量的维度,可以使用narray来表示任意数据类型:标量、向量、矩阵或张量。
3.标量
Numpy中标量比python中标量类型更多。不像python只有基本类型int,float等,Numpy可以让你指定有符号和无符号的类型以及不同的大小。因此,除了python的int,你可以使用uint8,int8,uint16,int16等类型。
这些类型很重要,因为你创建的每一个对象(向量,矩阵,张量)最终都会存储标量。而且,当你创建Numpy数组时,可以指定类型,但是数组中每一项必须具有相同的类型。在这方面,Numpy数组更像是C数组,而非python列表。
如果要创建一个包含标量的Numpy数组,方法是将值传递给Numpy的array函数,如下:
s=np.array(5)
不过仍然可以在ndarray、Numpy标量和普通的python标量之间执行数学运算。
可以通过检查数组的shape属性老查看数组的形状。可以执行代码
s.shape
它会打印出结果,即一对空括号()。这表示它的维度为零。
即使标量位于数组中,你仍然可以像正常的标量一样使用它们,可以键入:
x=s+3
x现在将等于8。如果你检查x的类型,会发现他可能是numpy.int64,因为它在使用Numpy类型,而不是python类型。
顺便说一下,及时标量类型也支持大部分的数组函数。所以可以调用x.shape,它会返回(),因为它的维度为零,即使它不是数组。如果你使用普通的python标量来尝试,就会收到一个错误。
4.向量
要创建一