Numpy(二)常用函数

忘是亡心i 2022-06-02 06:51 449阅读 0赞

1、写文件

(1) 单位矩阵,即主对角线上的元素均为1,其余元素均为0的正方形矩阵。在NumPy中可以用eye函数创建一个这样的二维数组,我们只需要给定一个参数,用于指定矩阵中1的元素个数。

(2) 使用savetxt函数将数据存储到文件中,当然我们需要指定文件名以及要保存的数组。

  1. #coding:utf-8
  2. import numpy as np
  3. a=np.eye(3)
  4. print a
  5. np.savetxt('eye.txt',a)

2、CSV 文件

CSV(Comma-Separated Value,逗号分隔值)格式是一种常见的文件格式。通常,数据库的转存文件就是CSV格式的,文件中的各个字段对应于数据库表中的列。众所周知,电子表格软件(如Microsoft Excel)可以处理CSV文件。

NumPy中的loadtxt函数可以方便地读取CSV文件,自动切分字段,并将数据载入NumPy数组。

data.csv中内容

  1. AAPL,28-01-2011, ,344.17,344.4,333.53,336.1,21144800
  2. def loadtxt(fname, dtype=float, comments='#', delimiter=None,
  3. converters=None, skiprows=0, usecols=None, unpack=False,
  4. ndmin=0):
  5. fname:读取文件的文件名。例如C:/Dataset/iris.txt delimiter:数据之间的分隔符。如使用逗号"," dtype:数据类型。如floatstr等。 usecols:选取数据的列。 skiprows作用是跳过头行。在默认情况下是通过空格来分割列的,如果想通过其他来分割列则需要通过delimiter来设置。如果你想跳过几列来读取则需要用usecoles来设置。 正常情况下该返回的是二维矩阵,若设置了unpack=True将返回各列。

读取data文件

  1. #设置分隔符为,(英文标点逗号),处理一个CSV文件。usecols的参数为一个元组,以获取第7字段至第8字段的数据,
  2. #unpack参数设置为True,意思是分拆存储不同列的数据,即分别将第7字段至第8字段的数据赋值给变量c和v
  3. c,v=np.loadtxt('data.csv', delimiter=',', usecols=(6,7), unpack=True)
  4. print c,v

3、平均值函数

mean函数可以计算数组元素的算术平均值。

average函数加权平均

  1. def average(a, axis=None, weights=None, returned=False):

a:数组,列表

axis:维度选择

weight:权重,和为1,类型同a

  1. a=np.arange(5)
  2. #b是各元素对应的权重,权重之和为1
  3. b=np.array([0,0.1,0.2,0.3,1])
  4. print np.average(a,weights=b)
  5. print np.mean(a)
  6. c=[1,2,3,4,5]
  7. print np.average(c,weights=b)
  8. d=np.arange(20).reshape(4,5)
  9. dw=[0.1,0.1,0.3,0.3,0.2]
  10. print np.average(d,axis=1,weights=dw)

4、最大值、最小值

  1. def amax(a, axis=None, out=None, keepdims=np._NoValue):
  2. a : array_like Input data.
  3. axis : None or int or tuple of ints, optional
  4. out : ndarray, optional
  5. keepdims : bool, optional
  6. def amin(a, axis=None, out=None, keepdims=np._NoValue):

同上

  1. a=np.arange(10)
  2. print np.min(a)
  3. print np.max(a)

5、函数

median的函数找到中位数

msort函数排序数组

var方差

diff函数可以计算数组中两个连续元素的差值,并返回一个由这些差值组成的数组

where函数可以根据指定的条件返回所有满足条件的数组元素的索引值。

take函数来根据索引值获取数组元素的值

savetxt函数,将数据保存至文件

linspace函数需要一个起始值和一个终止值参数,以及可选的元素个数的参数,它将返回一个元素值在指定的范围内均匀分布的数组。

linspace(m,n,l):m,n指范围,l指化成l等份

exp函数可以计算出每个数组元素的指数。

exp(x):x表数组,求解以e为底,x中的各元素为指数的数组。

convolve函数,计算一组数据与指定权重的卷积,convolve(weights,arr)

fill函数可以将数组元素的值全部设置为一个指定的标量值,它的执行速度比使用array.flat = scalar或者用循环遍历数组赋值的方法更快。

  1. import numpy as np
  2. import sys
  3. from matplotlib.pyplot import plot
  4. from matplotlib.pyplot import show
  5. N = 3
  6. weights = np.ones(N) / N
  7. print "Weights", weights
  8. c = np.array([344.17,344.4,333.53,336.1,21144800])
  9. sma = np.convolve(weights, c)[N-1:-N+1]
  10. deviation = []
  11. C = len(c)
  12. for i in range(N - 1, C):
  13. if i + N < C:
  14. dev = c[i: i + N]
  15. else:
  16. dev = c[-N:]
  17. averages = np.zeros(N)
  18. averages.fill(sma[i - N - 1])
  19. dev = dev - averages
  20. dev = dev ** 2
  21. dev = np.sqrt(np.mean(dev))
  22. deviation.append(dev)
  23. deviation = 2 * np.array(deviation)
  24. print len(deviation), len(sma)
  25. upperBB = sma + deviation
  26. lowerBB = sma - deviation
  27. c_slice = c[N-1:]
  28. between_bands = np.where((c_slice < upperBB) & (c_slice > lowerBB))
  29. print lowerBB[between_bands]
  30. print c[between_bands]
  31. print upperBB[between_bands]
  32. between_bands = len(np.ravel(between_bands))
  33. print "Ratio between bands", float(between_bands)/len(c_slice)
  34. t = np.arange(N - 1, C)
  35. plot(t, c_slice, lw=1.0)
  36. plot(t, sma, lw=2.0)
  37. plot(t, upperBB, lw=3.0)
  38. plot(t, lowerBB, lw=4.0)
  39. show()

clip方法返回一个修剪过的数组,也就是将所有比给定最大值还大的元素全部设为给定的最大值,而所有比给定最小值还小的元素全部设为给定的最小值。

compress方法返回一个根据给定条件筛选后的数组。

prod方法,计算阶乘

cumprod方法,计算数组元素的累积乘积

  1. import numpy as np
  2. a=np.arange(5)
  3. print a
  4. print a.clip(1,2)
  5. print a.compress(a>2)
  6. b=np.arange(1,6)
  7. print b.prod()
  8. print b.cumprod()

diagonal函数查看对角线上的元素

cov函数协方差矩阵

trace函数计算矩阵的迹,即对角线上元素之和

polyval函数,推断下一个值

roots函数找出我们拟合的多项式函数什么时候到达0值

polyder函数对多项式函数求导

argmax和argmin找出最大值点和最小值点

piecewise函数来获取数组元素的正负

hanning函数计算权重,生成一个长度为N的窗口

发表评论

表情:
评论列表 (有 0 条评论,449人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Numpy函数集锦

    在学习机器学习算法的过程中,Numpy是一个非常实用的库函数,本篇博客就对Numpy中一些常见的函数做一个总结(不断更新…),有什么不正确的欢迎评论指出!! 文件读写

    相关 Numpy函数

    1、写文件 (1) 单位矩阵,即主对角线上的元素均为1,其余元素均为0的正方形矩阵。在NumPy中可以用eye函数创建一个这样的二维数组,我们只需要给定一个参数,用于指定矩阵