【Python数据分析-8】:Numpy常用操作-arange函数、linspace函数与运算

1 arange函数

创建类似Python 的range函数功能的Numpy数组的方法:
下面的例子创建一个从1开始到10,步长为2的一维Numpy数组

In [21]: np.arange(1, 10, 2)
Out[21]: array([1, 3, 5, 7, 9])

2 linspace函数

但是当需要创建小数构成的数组时,由于一个整数到另一个整数之间存在无数个小数,使用arange就不能实现了。所以Numpy提供了linspace函数:
下面的例子生成0到10之前等距的10个数:

# np.linspace(起点,终点,需要生成的数字个数)
In [25]: np.linspace(0, 10, 10)
Out[25]:
array([ 0.        ,  1.11111111,  2.22222222,  3.33333333,  4.44444444,
        5.55555556,  6.66666667,  7.77777778,  8.88888889, 10.        ])

3 运算

Numpy运算
Numpy的运算是基于元素级别的,具体可以看以下例子理解:

In [27]: data1 = np.arange(1, 5, 1)

In [28]: data2 = np.arange(2, 6, 1)

In [29]: data1
Out[29]: array([1, 2, 3, 4])

In [30]: data2
Out[30]: array([2, 3, 4, 5])

In [31]: data2 - data1
Out[31]: array([1, 1, 1, 1])

In [32]: data1 * 3
Out[32]: array([ 3,  6,  9, 12])

In [33]: data1 > 3
Out[33]: array([False, False, False,  True])
复制代码

如果要进行矩阵运算,需要使用 @dot函数进行运算:

In [34]: data1 @ data2
Out[34]: 40

In [35]: data1.dot(data2)
Out[35]: 40
复制代码

类似于Python中的+=, *=是在原对象上进行就地修改的:

In [36]: data1 *= 2

In [37]: data1
Out[37]: array([2, 4, 6, 8])

In [38]: data2
Out[38]: array([2, 3, 4, 5])

In [39]: data2 += 1

In [40]: data2
Out[40]: array([3, 4, 5, 6])
复制代码

Numpy一元操作:

In [42]: data1
Out[42]: array([2, 4, 6, 8])

In [43]: data1.sum()
Out[43]: 20

In [44]: data1.min()
Out[44]: 2

In [45]: data1.max()
Out[45]: 8
复制代码

对于多维数组的一元运算操作,可以通过指定axis的值进行运算:
axis为0表示按列进行计算;axis为1表示按行进行计算

In [46]: data = np.arange(12).reshape(3,4)

In [47]: data
Out[47]:
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
In [49]: data.sum(axis=1)
Out[49]: array([ 6, 22, 38])

In [50]: data.sum(axis=0)
Out[50]: array([12, 15, 18, 21])

In [51]: data.cumsum(axis=0)
Out[51]:
array([[ 0,  1,  2,  3],
       [ 4,  6,  8, 10],
       [12, 15, 18, 21]])

In [52]: data.cumsum(axis=1)
Out[52]:
array([[ 0,  1,  3,  6],
       [ 4,  9, 15, 22],
       [ 8, 17, 27, 38]])


 

上一篇:javascript使用闭包模拟私有属性和方法


下一篇:吉林大学超星MOOC学习通高级语言程序设计 C++ 实验00 熟悉开发环境(2021级)