>

LoeiJe

:D 获取中...

何以解忧?唯有暴富

numpy学习笔记

numpy学习笔记

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
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 2019-10-23
# numpy 学习笔记
# icenaive
# 参考: https://github.com/lijin-THU/notes-python
# 仅供个人学习使用
#
# 17. choose 函数实现条件筛选

import numpy as np
# 对于数组,我们有时候需要进行类似 switch 和 case 进行条件选择,此时使用 choose 函数十分方便:

control = np.array([[1, 0, 1],
[2, 1, 0],
[1, 2, 2]])
print(np.choose(control, [10, 11, 12]))

# 在上面的例子中,choose 将 0,1,2 对应的值映射为了 10, 11, 12,对应的下标。这里的 0,1,2 表示对应的下标。

# 事实上, choose 不仅仅能接受下标参数,还可以接受下标所在的位置:

i0 = np.array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
i2 = np.array([[20, 21, 22],
[23, 24, 25],
[26, 27, 28]])
control = np.array([[1, 0, 1],
[2, 1, 0],
[1, 2, 2]])

print(np.choose(control, [i0, 10, i2]))

# 这里,control 传入第一个 1 对应的是 10,传入的第一个 0 对应于 i0 相应位置的值即 1,剩下的以此类推。
# 下面的例子将数组中所有小于 10 的值变成了 10。
a = np.array([[0, 1, 2],
[10, 11, 12],
[20, 21, 22]])

print(a < 10)

print(np.choose(a < 10, (a, 100)))

# 下面的例子将数组中所有小于 10 的值变成了 10,大于 15 的值变成了 15。
a = np.array([[0, 1, 2],
[10, 11, 12],
[20, 21, 22]])
it = a < 10
gt = a > 15
choice = it + 2 * gt
print(choice)
print(np.choose(choice, (a, 10, 15)))