欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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, :]