numpy扫盲
程序员文章站
2022-05-27 11:05:37
...
1,排序,得到有序数组,返回有序数组中每个元素的索引值列表
import numpy as np
# 生成一个随机数组
a = np.random.randint(32, size=(8,))
# 输出a示例:
array([12, 4, 9, 21, 5, 22, 23, 16])
# 排序,可以使用‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’等排序算法。
# https://docs.scipy.org/doc/numpy/reference/generated/numpy.argsort.html
b = np.argsort(a)
# 输出b示例:
array([1, 4, 2, 0, 7, 3, 5, 6], dtype=int64)
# 输出排序后的数组,下面语句的前提是a一定要是个numpy数组,不能是list,否则会报下面的错误:
# TypeError: only integer scalar arrays can be converted to a scalar index
c = a[b]
# 输出c示例:
array([ 4, 5, 9, 12, 16, 21, 22, 23])
2,反序输出
# 起点,终点,步长负值为每次反向1步
a[::-1]
# 输出示例:
array([16, 23, 22, 5, 21, 9, 4, 12])
# 二维也是类似
d = np.random.randint(18, size=(2,3))
# 输出示例:
array([[ 3, 12, 13],
[16, 0, 14]])
# 反向输出:行不变,列步长为-1。即第一列为最后一列,第二列为倒数第二列...以此类推
d[:, ::-1]
# 输出示例:
array([[13, 12, 3],
[14, 0, 16]])
# 同理行反向是b[::-1, :]
上一篇: php设计模式 Mediator (中介者模式)_php技巧
下一篇: Cookie扫盲