導航:首頁 > 編程語言 > python降采樣

python降采樣

發布時間:2022-08-26 11:10:58

㈠ 怎樣用python實現圖像去噪

#coding:utf-8
importsys,os
fromPILimportImage,ImageDraw

#二值數組
t2val={}
deftwoValue(image,G):
foryinxrange(0,image.size[1]):
forxinxrange(0,image.size[0]):
g=image.getpixel((x,y))
ifg>G:
t2val[(x,y)]=1
else:
t2val[(x,y)]=0

#降噪
#根據一個點A的RGB值,與周圍的8個點的RBG值比較,設定一個值N(0<N<8),當A的RGB值與周圍8個點的RGB相等數小於N時,此點為噪點
#G:Integer圖像二值化閥值
#N:Integer降噪率0<N<8
#Z:Integer降噪次數
#輸出
#0:降噪成功
#1:降噪失敗
defclearNoise(image,N,Z):

foriinxrange(0,Z):
t2val[(0,0)]=1
t2val[(image.size[0]-1,image.size[1]-1)]=1

forxinxrange(1,image.size[0]-1):
foryinxrange(1,image.size[1]-1):
nearDots=0
L=t2val[(x,y)]
ifL==t2val[(x-1,y-1)]:
nearDots+=1
ifL==t2val[(x-1,y)]:
nearDots+=1
ifL==t2val[(x-1,y+1)]:
nearDots+=1
ifL==t2val[(x,y-1)]:
nearDots+=1
ifL==t2val[(x,y+1)]:
nearDots+=1
ifL==t2val[(x+1,y-1)]:
nearDots+=1
ifL==t2val[(x+1,y)]:
nearDots+=1
ifL==t2val[(x+1,y+1)]:
nearDots+=1

ifnearDots<N:
t2val[(x,y)]=1

defsaveImage(filename,size):
image=Image.new("1",size)
draw=ImageDraw.Draw(image)

forxinxrange(0,size[0]):
foryinxrange(0,size[1]):
draw.point((x,y),t2val[(x,y)])

image.save(filename)

image=Image.open("d:/1.jpg").convert("L")
twoValue(image,100)
clearNoise(image,4,1)
saveImage("d:/5.jpg",image.size)

㈡ PYTHON語言如何取到聲音的頻率(其他語言也可行)

先得到時域信號,然後做傅立葉變換,得到頻譜。
感覺題主可能對python比較熟悉?那就別換語言了。稍微網路谷歌以下肯定能找到python的傅立葉變換的庫。

㈢ 怎麼使用Python中Pandas庫Resample,實現重采樣,完成線性插值

#python中的pandas庫主要有DataFrame和Series類(面向對象的的語言更願意叫類) DataFrame也就是
#數據框(主要是借鑒R裡面的data.frame),Series也就是序列 ,pandas底層是c寫的 性能很棒,有大神
#做過測試 處理億級別的數據沒問題,起性能可以跟同等配置的sas媲美
#DataFrame索引 df.loc是標簽選取操作,df.iloc是位置切片操作
print(df[['row_names','Rape']])
df['行標簽']
df.loc[行標簽,列標簽]
print(df.loc[0:2,['Rape','Murder']])
df.iloc[行位置,列位置]
df.iloc[1,1]#選取第二行,第二列的值,返回的為單個值
df.iloc[0,2],:]#選取第一行及第三行的數據
df.iloc[0:2,:]#選取第一行到第三行(不包含)的數據
df.iloc[:,1]#選取所有記錄的第一列的值,返回的為一個Series
df.iloc[1,:]#選取第一行數據,返回的為一個Series
print(df.ix[1,1]) # 更廣義的切片方式是使用.ix,它自動根據你給到的索引類型判斷是使用位置還是標簽進行切片
print(df.ix[0:2])
#DataFrame根據條件選取子集 類似於sas裡面if、where ,R裡面的subset之類的函數
df[df.Murder>13]
df[(df.Murder>10)&(df.Rape>30)]
df[df.sex==u'男']
#重命名 相當於sas裡面的rename R軟體中reshape包的中的rename
df.rename(columns={'A':'A_rename'})
df.rename(index={1:'other'})
#刪除列 相當於sas中的drop R軟體中的test['col']<-null
df.drop(['a','b'],axis=1) or del df[['a','b']]
#排序 相當於sas裡面的sort R軟體裡面的df[order(x),]
df.sort(columns='C') #行排序 y軸上
df.sort(axis=1) #各個列之間位置排序 x軸上
#數據描述 相當於sas中proc menas R軟體裡面的summary
df.describe()
#生成新的一列 跟R裡面有點類似
df['new_columns']=df['columns']
df.insert(1,'new_columns',df['B']) #效率最高
df.join(Series(df['columns'],name='new_columns'))
#列上面的追加 相當於sas中的append R裡面cbind()
df.append(df1,ignore_index=True)
pd.concat([df,df1],ignore_index=True)
#最經典的join 跟sas和R裡面的merge類似 跟sql裡面的各種join對照
merge()
#刪除重行 跟sas裡面nokey R裡面的which(!plicated(df[])類似
df.drop_plicated()
#獲取最大值 最小值的位置 有點類似矩陣裡面的方法
df.idxmin(axis=0 ) df.idxmax(axis=1) 0和1有什麼不同 自己摸索去
#讀取外部數據跟sas的proc import R裡面的read.csv等類似
read_excel() read_csv() read_hdf5() 等
與之相反的是df.to_excel() df.to_ecv()
#缺失值處理 個人覺得pandas中缺失值處理比sas和R方便多了
df.fillna(9999) #用9999填充
#鏈接資料庫 不多說 pandas裡面主要用 MySQLdb
import MySQLdb
conn=MySQLdb.connect(host="localhost",user="root",passwd="",db="mysql",use_unicode=True,charset="utf8")
read_sql() #很經典
#寫數據進資料庫
df.to_sql('hbase_visit',con, flavor="mysql", if_exists='replace', index=False)
#groupby 跟sas裡面的中的by R軟體中dplyr包中的group_by sql裡面的group by功能是一樣的 這里不多說
#求啞變數
miper=pd.get_mmies(df['key'])
df['key'].join(mpier)
#透視表 和交叉表 跟sas裡面的proc freq步類似 R裡面的aggrate和cast函數類似
pd.pivot_table()
pd.crosstab()
#聚合函數經常跟group by一起組合用
df.groupby('sex').agg({'height':['mean','sum'],'weight':['count','min']})

#數據查詢過濾

test.query("0.2
將STK_ID中的值過濾出來
stk_list = ['600809','600141','600329']中的全部記錄過濾出來,命令是:rpt[rpt['STK_ID'].isin(stk_list)].
將dataframe中,某列進行清洗的命令
刪除換行符:misc['proct_desc'] = misc['proct_desc'].str.replace('\n', '')
刪除字元串前後空格:df["Make"] = df["Make"].map(str.strip)
如果用模糊匹配的話,命令是:
rpt[rpt['STK_ID'].str.contains(r'^600[0-9]{3}$')]

對dataframe中元素,進行類型轉換

df['2nd'] = df['2nd'].str.replace(',','').astype(int) df['CTR'] = df['CTR'].str.replace('%','').astype(np.float64)

#時間變換 主要依賴於datemie 和time兩個包
http://www.2cto.com/kf/201401/276088.html
#其他的一些技巧
df2[df2['A'].map(lambda x:x.startswith('61'))] #篩選出以61開頭的數據
df2["Author"].str.replace("<.+>", "").head() #replace("<.+>", "")表示將字元串中以」<」開頭;以」>」結束的任意子串替換為空字元串
commits = df2["Name"].head(15)
print commits.unique(), len(commits.unique()) #獲的NAME的不同個數,類似於sql裡面count(distinct name)
#pandas中最核心 最經典的函數apply map applymap

㈣ 如何通過python尋找背景圖片的最小重復單元

這個問題跟image registration很相似 ,其實就是假設圖像A和圖像B之間存在一個平移(以及旋轉)關系 ,使得平移後A和B重合的部分差別最小。

㈤ 為什麼要使用Python進行數據分析

我使用python這門語言也有三年了,被其簡潔、易讀、強大的庫所折服,我已經深深愛上了python。其pythonic語言特性,對人極其友好,可以說,一個完全不懂編程語言的人,看懂python語言也不是難事。
在數據分析和交互、探索性計算以及數據可視化等方面,相對於R、MATLAB、SAS、Stata等工具,Python都有其優勢。近年來,由於Python庫的不斷發展(如pandas),使其在數據挖掘領域嶄露頭角。結合其在通用編程方面的強大實力,我們完全可以只使用Python這一種語言去構建以數據為中心的應用程序。
由於python是一種解釋性語言,大部分編譯型語言都要比python代碼運行速度快,有些同學就因此鄙視python。但是小編認為,python是一門高級語言,其生產效率更高,程序員的時間通常比CPU的時間值錢,因此為了權衡利弊,考慮用python是值得的。

Python強大的計算能力依賴於其豐富而強大的庫:
Numpy
Numerical Python的簡稱,是Python科學計算的基礎包。其功能:
1. 快速高效的多維數組對象ndarray。
2. 用於對數組執行元素級計算以及直接對數組執行數學運算的函數。
3. 線性代數運算、傅里葉變換,以及隨機數生成。
4. 用於將C、C++、Fortran代碼集成到Python的工具。

除了為Python提供快速的數組處理能力,NumPy在數據分析方面還有另外一個主要作用,即作為在演算法之間傳遞數據的容器。對於數值型數據,NumPy數組在存儲和處理數據時要比內置的Python數據結構高效得多。此外,由低級語言(比如C和Fortran)編寫的庫可以直接操作NumPy數組中的數據,無需進行任何數據復制工作。

SciPy
是一組專門解決科學計算中各種標准問題域的包的集合,主要包括下面這些包:
1. scipy.integrate:數值積分常式和微分方程求解器。
2. scipy.linalg:擴展了由numpy.linalg提供的線性代數常式和矩陣分解功能。
3. scipy.optimize:函數優化器(最小化器)以及根查找演算法。
4. scipy.signal:信號處理工具。
5. scipy.sparse:稀疏矩陣和稀疏線性系統求解器。
6. scipy.special:SPECFUN(這是一個實現了許多常用數學函數(如伽瑪函數)的Fortran庫)的包裝器。
7. scipy.stats:標准連續和離散概率分布(如密度函數、采樣器、連續分布函數等)、各種統計檢驗方法,以及更好的描述統計法。
8. scipy.weave:利用內聯C++代碼加速數組計算的工具。

註:NumPy跟SciPy的有機結合完全可以替代MATLAB的計算功能(包括其插件工具箱)。

SymPy
是python的數學符號計算庫,用它可以進行數學表達式的符號推導和演算。

pandas
提供了使我們能夠快速便捷地處理結構化數據的大量數據結構和函數。你很快就會發現,它是使Python成為強大而高效的數據分析環境的重要因素之一。
pandas兼具NumPy高性能的數組計算功能以及電子表格和關系型資料庫(如SQL)靈活的數據處理功能。它提供了復雜精細的索引功能,以便更為便捷地完成重塑、切片和切塊、聚合以及選取數據子集等操作。
對於使用R語言進行統計計算的用戶,肯定不會對DataFrame這個名字感到陌生,因為它源自於R的data.frame對象。但是這兩個對象並不相同。R的data.frame對象所提供的功能只是DataFrame對象所提供的功能的一個子集。也就是說pandas的DataFrame功能比R的data.frame功能更強大。

matplotlib
是最流行的用於繪制數據圖表的Python庫。它最初由John D. Hunter(JDH)創建,目前由一個龐大的開發人員團隊維護。它非常適合創建出版物上用的圖表。它跟IPython(馬上就會講到)結合得很好,因而提供了一種非常好用的互動式數據繪圖環境。繪制的圖表也是互動式的,你可以利用繪圖窗口中的工具欄放大圖表中的某個區域或對整個圖表進行平移瀏覽。

TVTK
是python數據三維可視化庫,是一套功能十分強大的三維數據可視化庫,它提供了Python風格的API,並支持Trait屬性(由於Python是動態編程語言,其變數沒有類型,這種靈活性有助於快速開發,但是也有缺點。而Trait庫可以為對象的屬性添加檢校功能,從而提高程序的可讀性,降低出錯率。) 和NumPy數組。此庫非常龐大,因此開發公司提供了一個查詢文檔,用戶可以通過下面語句運行它:
>>> from enthought.tvtk.toolsimport tvtk_doc
>>> tvtk_doc.main()

Scikit-Learn
是基於python的機器學習庫,建立在NumPy、SciPy和matplotlib基礎上,操作簡單、高效的數據挖掘和數據分析。其文檔、實例都比較齊全。

小編建議:初學者使用python(x, y),其是一個免費的科學和工程開發包,提供數學計算、數據分析和可視化展示。非常方便!

㈥ python從哪個庫可以引入downsample

downsample函數:可以通過下采樣將原來的數據提取出來。 dataTx=rcosflt(dataTx1,fs/8,fs,'filter',num);表示將數據dataTx進行8倍過采樣的滾降升餘弦濾波,過采樣增加的點數為2*delay*(fs/fd),其中在原數據的開頭和結尾各一半, dataTx=rcosfl...

㈦ 如何用python svd降噪

from recsys.algorithm.factorize import SVD

svd = SVD()
svd.load_data(dataset)
svd.compute(k=100, mean_center=True)

ITEMID1 = 1 # Toy Story
svd.similar(ITEMID1)
# Returns:
# [(1, 1.0), # Toy Story
# (3114, 0.87060391051018071), # Toy Story 2
# (2355, 0.67706936677315799), # A bug's life
# (588, 0.5807351496754426), # Aladdin
# (595, 0.46031829709743477), # Beauty and the Beast
# (1907, 0.44589398718134365), # Mulan
# (364, 0.42908159895574161), # The Lion King
# (2081, 0.42566581277820803), # The Little Mermaid
# (3396, 0.42474056361935913), # The Muppet Movie
# (2761, 0.40439361857585354)] # The Iron Giant

ITEMID2 = 2355 # A bug's life
svd.similarity(ITEMID1, ITEMID2)
# 0.67706936677315799

㈧ python 有沒有對信號進行升采樣的方法,從1000點序列數據轉成10000點數據

這個裡面他的話這個是可以進行進行采樣的方法,然後再從他的點訓練數據中轉換乘1000點的話,它都是裡面是轉化的,數據比較多,所以所以的話工程量比較大。

㈨ python如何實現類似matlab的小波濾波

  1. T=wpdec(y,5,'db40');
    %信號y進行波包解層數5T波樹plot看
    a10=wprcoef(T,[1,0]);
    %a10節點[1,0]進行重構信號貌似沒層重構說吧能某層某節點進行重構節點編號波樹

  2. %以下為濾波程序(主要調節參數c的大小)
    c=10;
    wn=0.1;
    fs=50000; %采樣頻率;
    b=fir1(c,wn/(fs/2),hamming(c+1));
    y1=filtfilt(b,1,y);%對y濾波。

㈩ python 梯度下降法 怎麼用

import numpy as np
import matplotlib.pyplot as plt
import random

class dataMinning:
datasets = []
labelsets = []

addressD = '' #Data folder
addressL = '' #Label folder

npDatasets = np.zeros(1)
npLabelsets = np.zeros(1)

cost = []
numIterations = 0
alpha = 0
theta = np.ones(2)
#pCols = 0
#dRows = 0
def __init__(self,addressD,addressL,theta,numIterations,alpha,datasets=None):
if datasets is None:
self.datasets = []
else:
self.datasets = datasets
self.addressD = addressD
self.addressL = addressL
self.theta = theta
self.numIterations = numIterations
self.alpha = alpha

def readFrom(self):
fd = open(self.addressD,'r')
for line in fd:
tmp = line[:-1].split()
self.datasets.append([int(i) for i in tmp])
fd.close()
self.npDatasets = np.array(self.datasets)

fl = open(self.addressL,'r')
for line in fl:
tmp = line[:-1].split()
self.labelsets.append([int(i) for i in tmp])
fl.close()

tm = []
for item in self.labelsets:
tm = tm + item
self.npLabelsets = np.array(tm)

def genData(self,numPoints,bias,variance):
self.genx = np.zeros(shape = (numPoints,2))
self.geny = np.zeros(shape = numPoints)

for i in range(0,numPoints):
self.genx[i][0] = 1
self.genx[i][1] = i
self.geny[i] = (i + bias) + random.uniform(0,1) * variance

def gradientDescent(self):
xTrans = self.genx.transpose() #
i = 0
while i < self.numIterations:
hypothesis = np.dot(self.genx,self.theta)
loss = hypothesis - self.geny
#record the cost
self.cost.append(np.sum(loss ** 2))
#calculate the gradient
gradient = np.dot(xTrans,loss)
#updata, gradientDescent
self.theta = self.theta - self.alpha * gradient
i = i + 1

def show(self):
print 'yes'

if __name__ == "__main__":
c = dataMinning('c:\\city.txt','c:\\st.txt',np.ones(2),100000,0.000005)
c.genData(100,25,10)
c.gradientDescent()
cx = range(len(c.cost))
plt.figure(1)
plt.plot(cx,c.cost)
plt.ylim(0,25000)
plt.figure(2)
plt.plot(c.genx[:,1],c.geny,'b.')
x = np.arange(0,100,0.1)
y = x * c.theta[1] + c.theta[0]
plt.plot(x,y)
plt.margins(0.2)
plt.show()

閱讀全文

與python降采樣相關的資料

熱點內容
阿里雲伺服器終端在哪裡 瀏覽:144
app紙有什麼用 瀏覽:219
cuteftp命令 瀏覽:502
最開始的編程語言是什麼 瀏覽:757
at遠程命令 瀏覽:490
雲伺服器哪家好點 瀏覽:211
android系統源碼閱讀 瀏覽:925
dumpjava分析工具 瀏覽:678
怎麼下載cpu源碼 瀏覽:154
代碼加密怎麼取消 瀏覽:888
編譯原理代碼在哪裡運行 瀏覽:584
解密攝影pdf 瀏覽:72
演算法編程中級題目 瀏覽:250
c語言編譯器畢業設計 瀏覽:717
醫保卡申請app哪個好 瀏覽:945
阿里雲伺服器上傳源碼 瀏覽:602
營銷管理科特勒pdf 瀏覽:696
願望清單app哪個好 瀏覽:461
安卓外放聲音怎麼解決 瀏覽:196
脈脈app干什麼用的 瀏覽:362