numpy是Python进行数据分析时经常使用的第三方库,常用来存储和处理大型矩阵。
ndarray是一个快速灵活的大数据集容器,下面用一些简单例子来描述一下。(为了方便代码与运行结果都在同一个框里)
| array() | 将输入的数据转换成ndarray |
| asarray() | 将输入转换成ndarray |
| arange() | 与range()类似,但返回一个ndarray而不是list |
| empty() | 创建一个新的数组,但只分配空间,不填充数值 |
>>> import numpy as np >>> data=[1,2,3] >>> ary = np.array(data) >>> a array([1, 2, 3])
dtype与type()作用类似。将数据转化为浮点数。
>>> ary=np.array(data,dtype=np.float64) >>> ary array([1., 2., 3.])
如果是由一组等长列表组成的列表,将直接转换成一个多维数组:
>>> data1=[[1,2,3],[4,5,6]]
>>> ary=np.array(data1)
>>> ary
array([[1, 2, 3],
[4, 5, 6]])
shape表示数组的维数大小。
>>> ary.shape (2, 3)
数组和标量之间的运算
>>> data=[[1,2,3],[4,5,6],[7,8,9]]
>>> ary = np.array(data)
>>> ary*ary
array([[ 1, 4, 9],
[16, 25, 36],
[49, 64, 81]])
索引和切片
>>> data=[0,1,2,3,4,5,6,7,8,9] >>> ary=np.array(data) >>> ary[5] 5 >>> ary[2:5] array([2, 3, 4]) >>> data=[[1,2],[3,4],[5,6]] >>> ary=np.array(data) >>> ary[1] array([3, 4]) >>> ary[1][1] 4
多维数组查找
>>> ary=np.arange(25).reshape(5,5)
>>> ary
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
>>> ary[[0,1,2],[0,1,2]] #查找的是(0,0),(1,1),(2,2)位置的元素
array([ 0, 6, 12])
>>> ary[[0,1,2]][:,[0,1,2,]]
array([[ 0, 1, 2],
[ 5, 6, 7],
[10, 11, 12]])
矩阵的置换,求和,平均值。
>>> ary=np.arange(9).reshape(3,3)
>>> ary
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> ary.T
array([[0, 3, 6],
[1, 4, 7],
[2, 5, 8]])
>>> ary.mean() #所有元素的平均值
4.0
>>> ary.sum() #所有元素的和
36
>>> ary.mean(0) #每一列元素的平均值
array([3., 4., 5.])
>>> ary.mean(1) #每一行元素的平均值
array([1., 4., 7.])
>>> ary.sum(0) #每一列元素的和
array([ 9, 12, 15])
>>> ary.sum(1) #每一行元素的和
array([ 3, 12, 21])
产生正态分布数据
>>> ary=np.random.randn(5,4)
>>> ary
array([[-1.3554972 , -0.54262328, -0.75178338, -0.04494816],
[ 1.3223689 , 0.56963563, 0.82064987, -1.66246399],
[-2.02045472, 1.58598134, 0.09474745, -1.24451674],
[ 0.92130553, 0.01415472, -1.15342159, 0.86128079],
[-0.9608987 , 0.48210959, -0.92738979, -0.22037024]])



