Python 数据处理

Python 数据处理

数据的读取与保存

当路径或文件中包含中文时,需要额外指定 engine 为 python

import pandas as pd
data = pd.read_csv(data_path, sep=' ', header=None)
data.to_csv(rlt_path, header=0, index=0, sep=' ')

data = pd.read_csv(data_path, engine='python')

DataFrame 按列差分

只对于 Series 和 DataFrame 存在这个函数。对于 ndarray 可以先转成 Series 或 DataFrame 再进行处理。

d_vel = abs(data.diff()).fillna(method='bfill')

数据插值

interp1d 函数通过传入的横纵坐标数据拟合并返回一个函数。这个函数可以接受一个序列作为输入,并返回相应大小的拟合插值。

from scipy.interpolate import interp1d

function = interp1d(range(N), data[i], kind='quadratic') # interp1d(x, y) 一维插值
fdata = function(np.linspace(0, N-1, INSERT_N * N))

这个函数只能对给定值范围内的点进行插值,如果需要预测的点超过范围将返回 ValueError 异常。此时可以使用 interp 函数。

from scipy import interp, arange, exp

x = arange(0, 10)
y = exp(-x/3.0)


interp([9, 10], x, y)
# array([0.04978707, 0.04978707])

不过该函数只是将超过范围的预测值赋值为边缘的两个值。如果需要更复杂的要求,可以通过自行编写函数实现。

中值滤波

用该点周围指定范围内的值的中位数来代替该点的值

import scipy.signal as signal

x_med = signal.medfilt(x, 3) # 核为3

分位数计算

percentile 函数根据传入的数据,给出对应 25%、50%和75%的分位数

import numpy as np

per = np.percentile(x, [25, 50, 75])

对数组前 k 个极值划分

argpartition 函数根据传入的数据,对数组中的元素值进行划分,并返回划分之后对应元素的下标

import numpy as np

index = np.argpartition(arr, -3)  # 返回数组中后 3 位存放最大的 3 个元素
idx = index[-3:]  # 取得最大 3 个数的下标

离散信号的极值点

import scipy.signal as signal

extreme_geater = signal.argrelextrema(data, np.greater) # 给出的是位置标号
extreme_less = signal.argrelextrema(data, np.less)

绘图使用两个独立的坐标轴

import matplotlib.pyplot as plt

plt.figure()
ax1 = plt.subplot(111)
ax1.plot(range(N), f_data[12])
ax2 = ax1.twinx() # 独立两个y轴,x轴用twiny()
ax2.plot(range(N), data[12])

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值