Numpy(二)常用函数

1、写文件

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

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

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

2、CSV 文件

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

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

data.csv中内容

AAPL,28-01-2011, ,344.17,344.4,333.53,336.1,21144800

def loadtxt(fname, dtype=float, comments='#', delimiter=None,
            converters=None, skiprows=0, usecols=None, unpack=False,
            ndmin=0):

fname:读取文件的文件名。例如C:/Dataset/iris.txt。

delimiter:数据之间的分隔符。如使用逗号","。

dtype:数据类型。如float,str等。

usecols:选取数据的列。

skiprows作用是跳过头行。在默认情况下是通过空格来分割列的,如果想通过其他来分割列则需要通过delimiter来设置。如果你想跳过几列来读取则需要用usecoles来设置。

正常情况下该返回的是二维矩阵,若设置了unpack=True将返回各列。

读取data文件

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

3、平均值函数

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

average函数加权平均

def average(a, axis=None, weights=None, returned=False):
a:数组,列表

axis:维度选择

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

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

4、最大值、最小值

def amax(a, axis=None, out=None, keepdims=np._NoValue):
a : array_like
    Input data.
axis : None or int or tuple of ints, optional
out : ndarray, optional
keepdims : bool, optional
def amin(a, axis=None, out=None, keepdims=np._NoValue):
同上

a=np.arange(10)
print np.min(a)
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或者用循环遍历数组赋值的方法更快。

import numpy as np
import sys
from matplotlib.pyplot import plot
from matplotlib.pyplot import show
N = 3
weights = np.ones(N) / N
print "Weights", weights
c = np.array([344.17,344.4,333.53,336.1,21144800])
sma = np.convolve(weights, c)[N-1:-N+1]
deviation = []
C = len(c)
for i in range(N - 1, C):
    if i + N < C:
        dev = c[i: i + N]
    else:
        dev = c[-N:]
    averages = np.zeros(N)
    averages.fill(sma[i - N - 1])
    dev = dev - averages
    dev = dev ** 2
    dev = np.sqrt(np.mean(dev))
    deviation.append(dev)
deviation = 2 * np.array(deviation)
print len(deviation), len(sma)
upperBB = sma + deviation
lowerBB = sma - deviation
c_slice = c[N-1:]
between_bands = np.where((c_slice < upperBB) & (c_slice > lowerBB))
print lowerBB[between_bands]
print c[between_bands]
print upperBB[between_bands]
between_bands = len(np.ravel(between_bands))
print "Ratio between bands", float(between_bands)/len(c_slice)
t = np.arange(N - 1, C)
plot(t, c_slice, lw=1.0)
plot(t, sma, lw=2.0)
plot(t, upperBB, lw=3.0)
plot(t, lowerBB, lw=4.0)
show()

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

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

prod方法,计算阶乘

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

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

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

cov函数协方差矩阵

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

polyval函数,推断下一个值

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

polyder函数对多项式函数求导

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

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

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








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HySmiley

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值