NumPy的应用:数组和数值的算术运算、数组和数组的算术运算、二维数组转置、向量点积

2.数组和数值的算术运算

>>> x = np.array((1, 2, 3, 4, 5))    # 创建数组对象
>>> x
array([1, 2, 3, 4, 5])
>>> x * 2                            # 数组与数值相乘,返回新数组
array([ 2, 4, 6, 8, 10])
>>> x / 2                            # 数组与数值相除
array([ 0.5, 1. , 1.5, 2. , 2.5])
>>> x // 2                           # 数组与数值整除
array([0, 1, 1, 2, 2], dtype=int32)
>>> x ** 3                           # 幂运算
array([1, 8, 27, 64, 125], dtype=int32)
>>> x + 2                            # 数组与数值相加
array([3, 4, 5, 6, 7])
>>> x % 3                            # 余数
array([1, 2, 0, 1, 2], dtype=int32)
>>> 2 ** x
array([2, 4, 8, 16, 32], dtype=int32)
>>> 2 / x
array([2. ,1. ,0.66666667, 0.5, 0.4])
>>> 63 // x
array([63, 31, 21, 15, 12], dtype=int32)

3.数组和数组的算术运算

>>> a = np.array((1, 2, 3))
>>> b = np.array(([1, 2, 3], [4, 5, 6], [7, 8, 9]))
>>> c = a * b                   # 数组与数组相乘
>>> c                           # a中的每个元素乘以b中的对应列元素
array([[ 1, 4, 9],
       [ 4, 10, 18],
       [ 7, 16, 27]])
>>> c / b                       # 数组之间的除法运算
array([[ 1.,  2.,  3.],
       [ 1.,  2.,  3.],
       [ 1.,  2.,  3.]])
>>> c / a
array([[ 1.,  2.,  3.],
       [ 4.,  5.,  6.],
       [ 7.,  8.,  9.]])


>>> a + a                         # 数组之间的加法运算
array([2, 4, 6])
>>> a * a                         # 数组之间的乘法运算
array([1, 4, 9])
>>> a - a                         # 数组之间的减法运算
array([0, 0, 0])
>>> a / a                         # 数组之间的除法运算
array([ 1.,  1.,  1.])
>>> a+b                           # a中每个元素加b中的每一列元素
array([[ 2,  4,  6],
       [ 5,  7,  9],
       [ 8, 10, 12]])
>>> np.array([1, 2, 3, 4]) + np.array([4, 3, 2, 1])
array([5, 5, 5, 5])
>>> np.array([1, 2, 3, 4]) + np.array([4])
array([5, 6, 7, 8])

4.二维数组转置

>>> b = np.array(([1, 2, 3], [4, 5, 6], [7, 8, 9]))
>>> b
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>> b.T                           # 转置
array([[1, 4, 7],
       [2, 5, 8],
       [3, 6, 9]])
>>> a = np.array((1, 2, 3, 4))
>>> a
array([1, 2, 3, 4])
>>> a.T                           # 一维数组转置以后和原来是一样的
array([1, 2, 3, 4])

5.向量点积

点积/内积
>>> a = np.array((5, 6, 7))
>>> b = np.array((6, 6, 6))
>>> a.dot(b)                                    # 向量内积
108  #  5*5+6*6+7*6
>>> np.dot(a,b)
108
>>> sum(a*b)
108
>>> c = np.array(([1,2,3],[4,5,6],[7,8,9]))     # 二维数组
>>> c.dot(a)                    # 二维数组的每行与一维向量计算内积
array([ 38, 92, 146])
>>> c[0].dot(a)                 # 验证一下,两个一维向量计算内积
38
>>> c[1].dot(a)
92
>>> c[2].dot(a)
146
>>> a.dot(c)                # 一维向量与二维向量的每列计算内积
array([78, 96, 114])
>>> cT = c.T                # 转置
>>> a.dot(cT[0])
78
>>> a.dot(cT[1])
96
>>> a.dot(cT[2])
114
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值