目录
一、布尔类型索引
import numpy as np
# 创建arr
arr = np.array([[1,2,3],[5,2,8],[1,2,3]])
print('arr = \n{}\n'.format(arr))
#获取arr 中元素大于3的元素
A = arr[arr >= 3]
print("A = {}\n".format(A))
#获取arr 中元素小于3的元素
B = arr[arr < 3]
print("B = {}\n".format(B))
运行结果:
arr =
[[1 2 3]
[5 2 8]
[1 2 3]]
A = [3 5 8 3]
B = [1 2 2 1 2]
二、集合运算
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 7, 8])
print('x = {}\n'.format(x))
print('y = {}\n'.format(y))
print('x 和 y 的交集: ', np.intersect1d(x, y))
print('x 和 y 的差集: ', np.setdiff1d(x, y))
print('x 和 y 的并集: ', np.union1d(x, y))
运行结果:
x = [1 2 3 4 5]
y = [2 4 6 7 8]
x 和 y 的交集: [2 4]
x 和 y 的差集: [1 3 5]
x 和 y 的并集: [1 2 3 4 5 6 7 8]
三、排序
一维ndarray排序
import numpy as np
# 1到11的随机ndarray
x = np.random.randint(1, 11, size=(10,))
print('x = {}\n'.format(x))
#对x排序, np.sort(N)方法不会改变N的顺序
y = np.sort(x)
print('y = {}\n'.format(y))
#对x排序 N.sort() 会改变N的顺序
x.sort()
print('排序后的x = {}\n'.format(x))
运行结果:
x = [10 6 6 5 2 6 6 4 2 1]
y = [ 1 2 2 4 5 6 6 6 6 10]
排序后的x = [ 1 2 2 4 5 6 6 6 6 10]
二维ndarray排序,我们需要在 np.sort()
函数中指定是按行排序,还是按列排序。为此,我们可以使用关键字 axis
import numpy as np
# 1到11的随机ndarray
x = np.random.randint(1, 11, size=(5,5))
print('x = {}\n'.format(x))
#按照列排序
y = np.sort(x, axis=0)
print('y = {}\n'.format(y))
#按照行排序
x.sort(axis=1)
print('排序后的x = {}\n'.format(x))
运行结果:
x = [[ 6 5 8 4 6]
[ 1 1 9 5 3]
[ 7 10 3 10 4]
[ 5 1 9 6 2]
[ 2 9 10 1 2]]
y = [[ 1 1 3 1 2]
[ 2 1 8 4 2]
[ 5 5 9 5 3]
[ 6 9 9 6 4]
[ 7 10 10 10 6]]
排序后的x = [[ 4 5 6 6 8]
[ 1 1 3 5 9]
[ 3 4 7 10 10]
[ 1 2 5 6 9]
[ 1 2 2 9 10]]