05. numpy-数组的基本运算

基本运算

ndarray支持加减乘除算术运算,同时还支持大于小于以及等等与比较运算。

import numpy as np

x = np.arange(3, 15).reshape((3, 4))
y = x > 5
x
# [[ 3  4  5  6]
#  [ 7  8  9 10]
#  [11 12 13 14]]
y
# [[False False False  True]
#  [ True  True  True  True]
#  [ True  True  True  True]]


na1 = np.array([
    [1, 2, 3],
    [2, 5, 7],
    [3, 8, 6]
])
na2 = np.array([
    [3, 1, 2],
    [9, 5, 2],
    [4, 5, 7]
])

# 相同维度的数组之间可以直接做加减乘除等算术运算
print(na1 + na2)
# [[ 4  3  5]
#  [11 10  9]
#  [ 7 13 13]]
print(na1 - na2)
# [[-2  1  1]
#  [-7  0  5]
#  [-1  3 -1]]
print(na1 * na2)
# [[ 3  2  6]
#  [18 25 14]
#  [12 40 42]]
print(na1 / na2)
# [[0.33333333 2.         1.5       ]
#  [0.22222222 1.         3.5       ]
#  [0.75       1.6        0.85714286]]

# 数组可以直接和数字做加减乘除运算
print(na1 + 5)
# [[ 6  7  8]
#  [ 7 10 12]
#  [ 8 13 11]]
print(na1 - 3)
# [[-2 -1  0]
#  [-1  2  4]
#  [ 0  5  3]]
print(na1 * 2)
# [[ 2  4  6]
#  [ 4 10 14]
#  [ 6 16 12]]
print(na1 / 3)
# [[0.33333333 0.66666667 1.        ]
#  [0.66666667 1.66666667 2.33333333]
#  [1.         2.66666667 2.        ]]
print(na1 % 5)
# [[1 2 3]
#  [2 0 2]
#  [3 3 1]]


# 数组之间可以做比较运算,得到的结果是一个有布尔类型的值组成的数组
print(na1 > na2)
# [[False  True  True]
#  [False False  True]
#  [False  True False]]
print(na1 == na2)
# [[False False False]
#  [False  True False]
#  [False False False]]

# 数组可以直接和数字做比较运算
print(na1 > 5)
# [[False False False]
#  [False False  True]
#  [False  True  True]]
print(na1 == 8)
# [[False False False]
#  [False False False]
#  [False  True False]]

# 可以使用位运算符拼接比较的结果
print((na1 > 6) | (na1 < 2))
# [[ True False False]
#  [False False  True]
#  [False  True False]]
print((na1 > 3) & (na1 < 8))
# [[False False False]
#  [False  True  True]
#  [False False  True]]

 

a = np.random.randint(2,10,size=(3,5))

# 判断a里面的数是否全部大于5
(a > 5).all()  # False

# 判断a里面任意一个数是否大于5
(a > 5).any()  # True
a = np.array([1,2,3,4,5])
b = np.array([9,8,7,6,5])

a + b  # array([10, 10, 10, 10, 10])
a - b  # array([-8, -6, -4, -2,  0])
a * b  # array([ 9, 16, 21, 24, 25])
a / b  # array([0.11111111, 0.25      , 0.42857143, 0.66666667, 1.        ])
a > b  # array([False, False, False, False, False])
b > a  # array([ True,  True,  True,  True, False])
a > 3  # array([False, False, False,  True,  True])

(a > 3) & (b > 4)  # array([False, False, False,  True,  True])
(a > 3) | (b > 4)  # array([ True,  True,  True,  True,  True])

a == b
# array([[False,  True,  True, False,  True],
#        [False, False, False, False, False],
#        [False, False, False,  True, False]])

c = np.array([1, 2, 3])
a + c  # 报错

c = np.array([4])
a + c  # array([5, 6, 7, 8, 9])

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南河Aure

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值