Numpy(Numerical Python的简称)是高性能科学计算和数据分析的基础包。它是所有高级工具的构建基础,Pandas就是构建在Numpy之上。
Numpy最重要的一个特点就是N维数组对象(ndarray),其是一个快速而灵活的大数据集容器。可以利用这个数组对整块数据执行一些数据运算,其语法和标量元素之间的运算类似。
ndarray是一个通用的同构数据多维容器,其中的所有元素必须是相同类型的。
1.创建ndarray
列表
In [1]:
import numpy as np
data1 = [6,7,4,5,0,1,8]
nda = np.array(data1)
nda
Out[1]:
array([6, 7, 4, 5, 0, 1, 8])
嵌套列表
In [2]:
data2 = [[1,2,3],[4,5,6]]
ndb = np.array(data2)
ndb
Out[2]:
array([[1, 2, 3],
[4, 5, 6]])
除非显示说明,narray会尝试为新建的这个数组推断一个较为合适的数据类型。
每个数组都有一个shape(表示各维度大小的元组)
In [6]:
ndb.shape
Out[6]:
(2, 3)
和一个dtype(用于说明数组数据类型的对象)
In [12]:
ndb.dtype
Out[12]:
dtype('int64')
还有一些其他函数可以创建ndarray
In [9]:
np.ones([2,3],dtype='int64')
Out[9]:
array([[1, 1, 1],
[1, 1, 1]])
In [4]:
np.zeros([2,3])
Out[4]:
array([[0., 0., 0.],
[0., 0., 0.]])
1.1.数据创建函数
函数
说明
array
将输入数据(列表,元组,数组或其他序列类型)转换为ndarray。要么推断出dtype,要么显示指定dtype。默认直接复制输入数据。
asarray
将输入转换为ndarray,如果输入本身就是yigendarray就不进行复制。
arange
类似于内置的rangge,但是返回一个ndarray而不是列表
ones,ones_like
根据指定的形状和dtype创建一个全1数组。ones_like以另一个数组为参考,并根据其形状和dtype创建一个全1数组。
zeros,zeros_like
类似于ones和ones_like,只不过产生的全是0数组而已
empty,empty_like
创建新数组,只分配内存空间但不填充任何值。
eye,identity
创建一个正方的N*N单位矩阵(对角线为1,其余为0)
ndarray的数据类型
dtype(数据类型)是一个特殊的对象,它包含有ndarray将一块内存解释为特定数据类型所需的信息。
In [1]:
import numpy as np
arr1 = np.array([1,2,3],dtype=np.float64)
arr2 = np.array([1,2,3],dtype=np.int64)
arr1.dtype
Out[1]:
dtype('float64')
In [2]:
arr2.dtype
Out[2]:
dtype('int64')
类型
类型代码
说明
int8,uint8
i1,u1
有符号和无符号的8位(1个字节)整型
int16,uint16
i2,u2
有符号和无符号的16位(2个字节)整型
int32,uint