NumPy的应用:数组元素访问、三角函数运算

6.数组元素访问

>>> b = np.array(([1,2,3],[4,5,6],[7,8,9]))
>>> b
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>> b[0]              # 第0行
array([1, 2, 3])
>>> b[0][0]           # 第0行第0列的元素值
1
>>> b[0,2]            # 第0行第2列的元素值
3
>>> b[[0,1]]          # 第0行和第1行
array([[1, 2, 3],
       [4, 5, 6]])
>>> b[[0,0], [1,2]]   # 第0行第1列的元素和第0行第2列的元素
array([2, 3])
>>> x = np.arange(0,100,10,dtype=np.floating)
>>> x
array([  0.,  10.,  20.,  30.,  40.,  50.,  60.,  70.,  80.,  90.])
>>> x[[1, 3, 5]]          # 同时访问多个位置上的元素
array([ 10.,  30.,  50.])


>>> index = np.random.randint(0, len(x), 5)  # 这里的x还是前面的x
>>> index
array([9, 5, 9, 5, 6])
>>> noise = np.random.standard_normal(5)*0.3 # 随机噪声
>>> noise
array([ 0.07000973,  0.17404817,  0.16620985,  0.15281169, -0.08693726])
>>> x[index]
array([ 90.,  50.,  90.,  50.,  60.])
>>> x[index] += noise            # 添加噪声,同时修改多个值
>>> x[index]
array([ 90.16620985,  50.15281169,  90.16620985,  50.15281169,  59.91306274])


>>> x = np.random.randint(1, 10, (2,3))
>>> x
array([[6, 3, 4],
       [7, 4, 5]])
>>> x.take([0,4])           # 第1个和第5个元素,行优先
array([6, 4])
>>> x.take([0,3])
array([6, 7])
>>> x.take([0,1], axis=0)   # 前两行
array([[6, 3, 4],
       [7, 4, 5]])
>>> x.take([0,1], axis=1)   # 前两列
array([[6, 3],
       [7, 4]])

7.三角函数运算

>>> x = np.arange(0, 100, 10, dtype=np.floating)
>>> np.sin(x)                             # 一维数组中所有元素求正弦值
array([ 0.        , -0.54402111,  0.91294525, -0.98803162,  0.74511316,
      -0.26237485, -0.30481062,  0.77389068, -0.99388865,  0.89399666])
>>> b = np.array(([1, 2, 3], [4, 5, 6], [7, 8, 9]))
>>> np.cos(b)                             # 二维数组中所有元素求余弦值
array([[ 0.54030231, -0.41614684, -0.9899925 ],
       [-0.65364362,  0.28366219,  0.96017029],
       [ 0.75390225, -0.14550003, -0.91113026]])
>>> np.round(_)                           # 四舍五入
array([[ 1., -0., -1.],
       [-1.,  0.,  1.],
       [ 1., -0., -1.]])


>>> x = np.random.rand(10) * 10            # 包含10个随机数的数组
>>> x
array([ 2.16124573,  2.58272611,  6.18827437,  5.21282916,  4.06596404,
        3.34858432,  5.60654631,  9.49699461,  1.68564166,  2.9930861 ])
>>> np.floor(x)                            # 所有元素向下取整
array([ 2.,  2.,  6.,  5.,  4.,  3.,  5.,  9.,  1.,  2.])
>>> np.ceil(x)                             # 所有元素向上取整
array([  3.,   3.,   7.,   6.,   5.,   4.,   6.,  10.,   2.,   3.])
>>> np.angle(1+1j, deg=True)               # 返回指定向量的角度
45.0
>>> np.angle(1+1j)                         # 返回指定向量对应角度的弧度
0.78539816339744828
>>> np.angle([1, 1j, 1+1j], deg=True)      # 返回多个向量的角度
array([  0.,  90.,  45.])




>>> x = np.linspace(0, 3.14, 10)
>>> x
array([ 0.        ,  0.34888889,  0.69777778,  1.04666667,  1.39555556,
        1.74444444,  2.09333333,  2.44222222,  2.79111111,  3.14      ])
>>> y = np.cos(x)            # 余弦
>>> y
array([ 1.        ,  0.93975313,  0.76627189,  0.50045969,  0.17434523,
       -0.17277674, -0.4990802 , -0.76524761, -0.93920748, -0.99999873])
>>> np.arccos(y)             # 反余弦
array([ 0.        ,  0.34888889,  0.69777778,  1.04666667,  1.39555556,
        1.74444444,  2.09333333,  2.44222222,  2.79111111,  3.14      ])


>>> np.absolute(-3)                # 绝对值或模
3
>>> np.absolute(3+4j)
5.0
>>> np.ceil(3.2)                   # 向上取整
4.0
>>> np.ceil(np.array([1, 2, 3.1]))
array([ 1.,  2.,  4.])
>>> np.isnan(np.NAN)
True
>>> np.log2(8)                     # 对数
3.0
>>> np.log10(100)
2.0
>>> np.log10([100, 1000, 10000])
array([ 2.,  3.,  4.])


>>> np.multiply(3, 9)
27
>>> np.multiply([1, 2, 3], [4, 5, 6])
array([ 4, 10, 18])
>>> np.multiply(3, [5,6])
array([15, 18])
>>> np.multiply(3, np.array([5,6]))
array([15, 18])
>>> np.sqrt([9, 16, 36])
array([ 3.,  4.,  6.])
>>> np.sqrt(range(10))
array([ 0.        ,  1.        ,  1.41421356,  1.73205081,  2.        ,
        2.23606798,  2.44948974,  2.64575131,  2.82842712,  3.        ])
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值