1聚合
import numpy as np
L = np.random.random(100)
# 矩阵求和
np.sum(L)
# 矩阵求最值
np.min(L)
np.max(L)
L.min()
L.max()
L.sum()
X = np.arange(16).reshape(4, -1)
# 算出一个和
X.sum()
# 沿着行方向上计算,求出每列的值
X.sum(axis=0)
# 沿着列方向上计算,求出每行的值
X.sum(axis=1)
# 求所有元素的乘积
np.prod(X)
# 对矩阵所有元素加一求积
np.prod(X + 1)
np.mean(X)
np.median(X)
# 求L矩阵中50%的数所小于等于的某个数
np.percentile(L, q=50)
# 求方差
np.var(L)
# 求标准差
np.std(L)
# 正态分布生成
np.random.normal(0, 1, size=10000)
2找索引
找索引主要使用arg相关的函数
x = np.random.normal(0, 1, size=10000)
# 找出最小值的索引
np.argmin(x)
3排序及使用索引
x = np.arange(16)
# 将顺序向量变成乱序向量
np.random.shuffle(x)
# 排序,返回一个新的排好序的向量,原向量不变
np.sort(x)
# 排序,就地排序,原向量改变
x.sort()
X = np.random.randint(10, size=(4, 4))
# 将每行元素进行排序
np.sort(X)
# 将每列进行排序,axis默认为1
np.sort(X, axis=0)
# 返回一个排好序的矩阵,矩阵中元素为原矩阵的对应的排好序的矩阵的元素在原矩阵中的下标
np.random.shuffle(x)
np.argsort(x)
# 3前面的元素都比3小,不一定有序,3后面的都比3大,不一定顺序
np.partition(x, 3)
np.argsort(X, axis=1)
np.argsort(X, axis=0)
np.argpartition(X, 2, axis=1)
4Fancy Indexing
import numpy as np
x = np.arange(16)
# 花式索引
ind = [3, 5, 8]
# 取出对应下标的元素
x[ind]
ind = np.array([[0, 2], [1, 3]])
# 返回一个对应下标组成的二维矩阵
x[ind]
X = x.reshape(4, -1)
row = np.array([0,1,2])
col = np.array([1, 2, 3])
# 返回一个row和col一一对应的下标元素组成的一维矩阵
X[row, col]
# 返回一维矩阵
X[0, col]
# 返回二维矩阵
X[:2, col]
col = [True, False, True, True]
X[1;3, col]
5array的比较
x = np.arange(16)
# 返回一个值为布尔型的矩阵
x < 3
x == 3
x != 3
# 复杂型的比较
2*x == 24 - 4*x
X = x.reshape(4, -1)
X < 6
# 统计x中元素小于3的个数
np.sum(x<=3)
# 统计传入的数据中的非0元素
np.count_nonzero(x<=3)
# 有任一一个元素为True,就返回True
np.any(x==0)
# 所有元素都要为True,就返回True
np.all(x>=0)
# 统计每行中偶数的个数
np.sum(X%2==0, axis=1)
# 统计每行中是否所有元素大于0
np.all(X>0, axis=1)
# 统计3-10的个数
np.sum((x>3) & (x<10))
# 大于10或则为偶数的个数
np.sum((x%2==0) | (x>10))
# 非运算,不等于0的个数
np.sum(~(x==0))
# 取出x中小于5的数据
X[X<5]
# 取出行中最后一个元素能整除3的行
X[X[:, 3] % 3 ==0, :]
网友评论