>

LoeiJe

:D 获取中...

何以解忧?唯有暴富

numpy学习笔记

numpy学习笔记

四则运算

运算 函数
a + b add(a,b)
a - b subtract(a,b)
a * b multiply(a,b)
a / b divide(a,b)
a ** b power(a,b)
a % b remainder(a,b)

以乘法为例,数组与标量相乘,相当于数组的每个元素乘以这个标量:

比较和逻辑运算

运算 函数<
== equal
!= not_equal
> greater
>= greater_equal
< less
<= less_equal
logical_and
logical_or
logical_xor
logical_not
& bitwise_and
bitwise_or
^ bitwise_xor
~ invert
>> right_shift
<< left_shift

等于操作也是逐元素比较的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 2019-10-23
# numpy 学习笔记
# icenaive
# 参考: https://github.com/lijin-THU/notes-python
# 仅供个人学习使用
#
# 15. 运算

# 四则运算

import numpy as np

a = np.array([1, 2])
print(a * 3)

# 数组逐元素相乘
b = np.array([3, 4])
print(a * b)

# 使用函数
print(np.multiply(a, b))
# 事实上,函数还可以接受第三个参数,表示将结果存入第三个参数中:
print(np.multiply(a, b, a))

print(a)

# 比较和逻辑运算
a = np.array([[1, 2, 3, 4],
[2, 3, 4, 5]])
b = np.array([[1, 2, 5, 4],
[1, 3, 4, 5]])
print(a == b)

# 意味着我们在条件中判断两个数组是否一样时,不能直接使用 if a == b:
# 而要使用 if all(a == b):
# 对于浮点数,由于存在精度问题,使用函数 allclose 会更好: if allclose(a, b):
# logical_and 也是逐元素的 and 操作: 0 被认为是 False,非零则是 True。
a = np.array([0, 1, 2])
b = np.array([0, 10, 0])

print(np.logical_and(a, b))

# 比特操作
a = np.array([1, 2, 4, 8])
b = np.array([16, 32, 64, 128])

print(a | b)

# 取反
a = np.array([1, 2, 3, 4], np.uint8)
print(~a)

# 左移
print(a << 3)

# 要注意的是 & 的运算优先于比较运算如 > 等,所以必要时候需要加上括号:
a = np.array([1, 2, 4, 8])
b = np.array([16, 32, 64, 128])

print((a > 3) & (b < 100))