numpy小记
numpy小记
70个NumPy分级练习题:用Python一举搞定机器学习矩阵运算
import numpy as np # 1. 替换满足条件的元素而不影响原始数组 arr = np.arange(10) out = np.where(arr%2==1, -1, arr) arr Out[4]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) out Out[5]: array([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1]) # 7. 获取两个数组元素匹配的索引号 a = np.array([1,2,3,2,3,4,3,4,5,6]) b = np.array([7,2,10,2,7,4,9,4,9,8]) np.where(a==b) Out[33]: (array([1, 3, 5, 7], dtype=int64),) # 9. 将处理标量的python函数在numpy数组上运行 maxx = lambda x,y: x if x>=y else y pair_max = np.vectorize(maxx, otypes=[float]) a = np.array([5,7,9,8,6,4,5]) b = np.array([6,3,4,8,9,7,1]) pair_max(a,b) Out[45]: array([6., 7., 9., 8., 9., 7., 5.]) # 18. 导入含有数字和文本的数据集,并保持的文本完整性 url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data" irirs_ld = np.genfromtxt(url, delimiter=',', dtype=None) # 21. 计算softmax值 def softmax(x): ex = np.exp(x-np.max(x)) return ex/ex.sum(axis=0) # 29. 概率抽样 # 暂定 # 33. 两个数组之间的欧氏距离 arr = np.arange(5) brr = np.arange(4,9) dist = np.linalg.norm(arr-brr) dist Out[176]: 8.94427190999916 # 38. 不连续的日期数组。通过填补缺失的日期,使其成为连续的日期序列 # 39. 一维数组arr,使用步长生成一个二维数组,窗口长度为4,步长为2 def gen_strides(arr, stride_len=5, windows_len=5): n_strides = ((arr.size-windows_len)//stride_len)+1 return np.array([arr[s:(s+windows_len)] for s in np.arange(0, n_strides*stride_len,stride_len)]) gen_strides(np.arange(15), stride_len=2, windows_len=4) Out[207]: array([[ 0, 1, 2, 3], [ 2, 3, 4, 5], [ 4, 5, 6, 7], [ 6, 7, 8, 9], [ 8, 9, 10, 11], [10, 11, 12, 13]])
移动平均值
cumsum :计算轴向元素累加和,返回由中间结果组成的数组
cumprod :计算轴向元素累乘积,返回由中间结果组成的数组
第n个重复项的索引
按列排序二维数组
pearsonr相关系数
唯一值的数量
多个条件过滤numpy数组
堆叠数组操作
提取范围内的所有数字
交换数组行列
反转2维数组行列
数组打印
标准化一个数组至0到1之间
缺失值相关
数组交差集
数组产生
元素查找
最后更新于
这有帮助吗?
