numpy里常见的方法

import numpy as np

位运算相关的函数

a = np.random.randint(5, 50, size=8)
# array([15, 47, 14,  8,  7, 32, 38,  7])

#按位与   &
np.bitwise_and(a,7)     
# array([7, 7, 6, 0, 7, 0, 6, 7], dtype=int32)
# 就是把a里的每一个数字转成二进制的形式 再与7的二进制形式作比较 相同则取
# 比如用第一个数字15和7 作比较 15的二进制是 0000 1111  
#                           7的二进制是 0000 0111 
#                          得出结果就是 0000 0111 再转换成十进制就是7
# 以此类推 后面都是这样比较

# 按位或| 
np.bitwise_or(a,7)
# array([15, 47, 15, 15,  7, 39, 39,  7], dtype=int32)
# 也是转成二进制的形式作比较 有1就取
#比如 第一个    0000 1111
#             0000 0111
# 取出的结果是 0000 1111  只要有1 就取再转成十进制  结果是 15

# 按位异或  ^
np.bitwise_xor(a, 7)
#array([ 8, 40,  9, 15,  0, 39, 33,  0], dtype=int32)
# 也是先转成二进制的形式
# 相同不取  不同则取  (这里取的意思都是取1)
# 相同取0 不同取1
#       0000 1111
#       0000 0111
#       0000 1000   结果是8

# 按位取反 ~
np.bitwise_not(a)
# array([-16, -48, -15,  -9,  -8, -33, -39,  -8], dtype=int32)
#  结果就是 -(a + 0000 0001)  a转成二进制的形式 再加一 结果变成负号
#       0000 1111 + 0000 0001
#     -->  0001 0000  但是最后要变成负号  就是 -16

#左移  <<
np.left_shift(a, 2)
# array([ 60, 188,  56,  32,  28, 128, 152,  28], dtype=int32)
# 左移N位 等价于 a * 2^N
# 把十进制数字转成二进制 再往左偏移 两个单位 
#      0000 1111  -->  0011 1100  结果是60 

# 右移  >> 
np.right_shift(a, 2) 
# array([ 3, 11,  3,  2,  1,  8,  9,  1], dtype=int32)
# 和左移的意思一样 就是向右移两位  最小值是0

算术运算

a = np.random.randint(2,50, size=8)
b = np.random.randint(2,50, size=8)
# a = [22 44 17 17 34 14 20 43]
# b = [ 2 47 36  6  4 35 35 29]

np.add(a,b)    #做加法运算
# array([67, 79, 72, 46, 44, 66, 65, 56])

np.divide(a,b)   # 做除法运算
#array([1.68      , 1.32352941, 1.48275862, 0.39393939, 0.57142857,
#1.86956522, 0.47727273, 2.11111111])

np.multiply(a,b)  #  做乘法运算
# array([1050, 1530, 1247,  429,  448,  989,  924,  684])

# np.subtract(a,b)  # 做减法运算
#array([ 17,  11,  14, -20, -12,  20, -23,  20])

np.power(a,b)  # 做幂次方运算
#array([ 1778384896, -1096480663, -1779601381,  1676836493,           #0,
#         789926883, -2040401007, -1767636992], dtype=int32)

np.mod(a,b)   # 取余


np.remainder(a,b)   #   取余

np.reciprocal(a,b)  #  取倒数

#  (因为自己又运行了一边 数字改了 加上人懒 
#          就不重新放上面了 感兴趣的可以自己瞅一瞅)

数学相关的方法

a = np.random.randint(1, 10, size=5)
# array([7, 4, 4, 8, 5])

np.pi / a   用 pi --> 3.14 除以 a
#array([0.44879895, 0.78539816, 0.78539816, 0.39269908, 0.62831853])

np.sin(x) #正弦(xian(二声))

#array([0.43388374, 0.70710678, 0.70710678, 0.38268343, 0.58778525])

np.cos(x)  # 余弦
#array([0.90096887, 0.70710678, 0.70710678, 0.92387953, 0.80901699])

np.tan(x) # 正切

#array([0.48157462, 1.        , 1.        , 0.41421356, 0.72654253])

a = np.random.randn(10)
#array([-0.09812288,  1.12658467, -0.42985643, -0.37230381, #-1.18993383,
#       -0.73424279, -0.56587047, -1.19870008, -0.97423602, -0.96879218])

np.ceil(a)  # 向上取整
#array([-0.,  2., -0., -0., -1., -0., -0., -1., -0., -0.])
np.floor(a)  # 向下取整
#array([-1.,  1., -1., -1., -2., -1., -1., -2., -1., -1.])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值