ndarray对象的方法
数组的修剪和压缩
1. clip方法返回一个修剪过的数组, 就是将所有比给定最大值还大的元素全部设为给定的最大值, 把所有比给定义最小值还小的元素全部设为给定的最小值
import numpy as np a = np.arange(5) print(a) # [0 1 2 3 4] print(a.clip(1,2)) # [1 1 2 2 2]
2. compress方法返回一个根据给定条件筛选后的数组
a = np.arange(4) print(a) # [0 1 2 3] print(a.compress(a > 2)) # [3]
阶乘
1.prod()方法, 计算数组中所有元素的乘积
import numpy as np b = np.arange(1, 9) print(b) # [1 2 3 4 5 6 7 8] print(b.prod()) # 40320
2.cumprod方法, 计算数组元素的累计乘积
import numpy as np b = np.arange(1, 9) print(b) # [1 2 3 4 5 6 7 8] print(b.cumprod()) # [ 1 2 6 24 120 720 5040 40320]
读写文件
numpy的loadtxt()方法
import numpy as np c = np.loadtxt('my.csv', delimiter=',', usecols=(6,), unpack=True)
def datestr2num(s):
'''将日期转换成数字'''
s = s.decode("utf-8")
return datetime.datetime.strptime(s,"%d-%m-%Y").date().weekday()
# converters类似于lambda,可以将数据列和转换函数连接起来,输出转换后的数值列
date, open_p, high, low, close = np.loadtxt('my.csv',delimiter=',', usecols=(1,2,3,4,5), \
converters={1:datestr2num},unpack=True)
参数 作用
fname 被读取的文件名(文件的相对地址或者绝对地址)
dtype 指定读取后数据的数据类型
comments 跳过文件中指定参数开头的行(即不读取)
delimiter 指定读取文件中数据的分割符
converters 对读取的数据进行预处理
skiprows 选择跳过的行数
usecols 指定需要读取的列
unpack 选择是否将数据进行向量输出
encoding 对读取的文件进行预编码
numpy的loadtxt()方法
import numpy as np i2=np.eye(6) np.savetxt("eye.txt",i2)
常用的统计函数
min max median函数
返回数组的最小值, 最大值和中位数, 中位数对于奇数是中间的, 对于偶数, 是中间两个数的平均值
diff函数
import numpy as np # 读取my.csv文件,逗号为分隔符,只读取4,7列,并返回两列,而不是一个元组 h, l = np.loadtxt("my.csv", delimiter=',', usecols=(4,5), unpack=True) difference = np.diff(h) print(difference) # diff计算相邻数据的差,std是标准差,var是方差
apply_along_axis函数
numpy.apply_along_axis(func, axis, arr, *args, **kwargs):
必选参数:func,axis,arr。
其中func是我们自定义的一个函数,函数func(arr)中的arr是一个数组,函数的主要功能就是对数组里的每一个元素进行变换,得到目标的结果。
其中axis表示函数func对数组arr作用的轴。
可选参数:*args, **kwargs。都是func()函数额外的参数。
返回值:numpy.apply_along_axis()函数返回的是一个根据func()函数以及维度axis运算后得到的的数组.
import numpy as np import datetime def datestr2num(s): '''将日期转换成数字''' s = s.decode("utf-8") return datetime.datetime.strptime \ (s,"%d-%m-%Y").date().weekday() #ret = datestr2num("18-08-2019") #print(ret) # converters类似于lambda date, open_p, high, low, close = np.loadtxt('my.csv',delimiter=',', usecols=(1,2,3,4,5), \ converters={1:datestr2num},unpack=True) # date:日期 open_p:开盘价 high:最高价 low:最低价 close:收盘价 print("Dates =", date) averages = np.zeros(5) for i in range(5): indices = np.where(date == i) # np.take按照第二个参数索引去拿索引对应列中()第一个参数)的数字 prices = np.take(close, indices) avg = np.mean(prices) # 求平均值 print("Day", i ,"price", prices, "Average", avg) averages[i] = avg top = np.max(averages) print("Hight average", top) print("Top dat of the week", np.argmax(averages)) # 返回最大值的索引 bottom = np.min(averages) print("Lowest average",bottom) print("Bottom day of the week", np.argmin(averages)) # 返回最小值的索引 close = close[:16] date = date[:16] # np.where会输出多维度的np.array first_monday = np.ravel(np.where(date == 0))[0] last_friday = np.ravel(np.where(date==4))[-1] weeks_indices = np.arange(first_monday, last_friday + 1) # 将一个np.arange切分成5个array weeks_indices = np.split(weeks_indices, 5) print(weeks_indices) # [array([1, 2, 3]), array([4, 5, 6]), array([7, 8, 9]), array([10, 11, 12]), array([13, 14, 15])] def summarize(a,o,h,l,c): monday_open = o[a[0]] week_high = np.max(np.take(h,a)) week_low = np.min(np.take(l,a)) friday_close = c[a[-1]] return ("APPL", monday_open, week_high, week_low, friday_close) weekssummary = np.apply_along_axis(summarize,1,weeks_indices,open_p,high,low,close) np.savetxt("weeksummary.csv", weekssummary,delimiter=",", fmt="%s")
linspace exp函数
import numpy as np x = np.arange(5) # np.exp()函数 print(np.exp(x)) # 生成e关于x的指数 # [ 1. 2.71828183 7.3890561 20.08553692 54.59815003] # np.linspace()函数 print(np.linspace(-1, 0, 5)) # 注意:不是linespace # [-1. -0.75 -0.5 -0.25 0. ] # 生成从-1到0的数量为5的等差数列 # 生成权重值 N = 5 weights = np.exp(np.linspace(-1, 0, N)) # [ 0.36787944 0.47236655 0.60653066 0.77880078 1. ]
原文地址:https://www.cnblogs.com/draven123/p/11386186.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Yii2框架实现利用mpdf创建pdf文件功能示例
- PHP超低内存遍历目录文件和读取超大文件的方法
- PHP bin2hex()函数基础实例讲解
- Kears 使用:通过回调函数保存最佳准确率下的模型操作
- django form和field具体方法和属性说明
- 总结PHP中初始化空数组的最佳方法
- tensorflow使用CNN分析mnist手写体数字数据集
- PHP7 mongoDB扩展使用的方法分享
- 主流开源分布式图数据库 Benchmark
- PHP封装的简单连接MongoDB类示例
- 基于Tensorflow的MNIST手写数字识别分类
- Yii框架ACF(accessController)简单权限控制操作示例
- tensorflow 动态获取 BatchSzie 的大小实例
- TP5.0框架实现无限极回复功能的方法分析
- Tensorflow之MNIST CNN实现并保存、加载模型