Python數(shù)據(jù)科學(xué)入門
Dmitry Zinoviev著
熊子源 譯
第5章 使用表格形式的數(shù)值數(shù)據(jù)
第22單元 轉(zhuǎn)置和重排
Reshape(d0,d1…)
可以改變現(xiàn)有數(shù)組的形狀,其參數(shù)定義了新的維度
屬性T的值就是數(shù)組的轉(zhuǎn)置視圖:
array.T
Transpose()
根據(jù)多維數(shù)組的參數(shù)來(lái)排列多維數(shù)組的部分或所有軸
第23單元 索引和切片
數(shù)組能實(shí)現(xiàn)布爾索引: 可以使用布爾值數(shù)組作為索引,其結(jié)果是原始數(shù)組中布爾索引為True的項(xiàng)構(gòu)成的數(shù)組。通常,布爾數(shù)組是廣播的結(jié)果。布爾索引既可以在左側(cè)(用于匹配),也可以用于右側(cè)(用于選擇)。
布爾運(yùn)算:
關(guān)系運(yùn)算符(<,==)優(yōu)先級(jí)低于位運(yùn)算(&、!、|)
第24單元 廣播
**廣播:**數(shù)組上的矢量化操作
如果參與運(yùn)算的兩個(gè)數(shù)組維度相等或其中一個(gè)是標(biāo)量。就可以將運(yùn)算在兩個(gè)維度“廣播”。
在numpy和Python中星號(hào)運(yùn)算符( * )具有不同的含義:
Python | seq*5 將列表seq復(fù)制五次理解條件函數(shù); |
---|---|
Numpy | seq*5 將數(shù)組seq中的每一個(gè)元素乘以5。 |
通用函數(shù)round()對(duì)矩陣元素執(zhí)行四舍五入操作。
第25單元 解密通用函數(shù)
Greater() 逐列比較數(shù)組的兩行數(shù)據(jù),返回值為True\False
第26單元 理解條件函數(shù)
where(c,a,b) 是numpy風(fēng)格的if-else三元運(yùn)算符。它通過(guò)一個(gè)布爾數(shù)組(c)和兩個(gè)其他數(shù)組(a,b)得出數(shù)組d。數(shù)組d滿足:如果c[i]為真,則d[i]=a[i],否則d[i]=b[i]。
第27單元 數(shù)組的聚合與排序
cumsum() | 計(jì)算累積和 |
---|---|
cumprod() | 計(jì)算乘積量 |
sort() | 將數(shù)組進(jìn)行排序 |
第28單元 將數(shù)組用作集合
unique(X) | 返回X中所用唯一元素組成的數(shù)組。它是counter模塊的一個(gè)很好的替代品,但它并未真正計(jì)算數(shù)組中元素出現(xiàn)的次數(shù)。 |
---|---|
in1d(needle,haystack) | 返回一個(gè)布爾數(shù)組,如果needle的元素在haystack中,返回?cái)?shù)組的對(duì)應(yīng)位置元素為True。 |
union1d() | 計(jì)算一維數(shù)組的并集 |
intersect1d() | 計(jì)算一維數(shù)組的交集 |
第29單元 數(shù)組的保存和讀取
如果文件名以.gz結(jié)尾,numpy甚至可以自動(dòng)壓縮和解壓文件。你還可以設(shè)定numpy處理注釋行和分隔符的方式,并跳過(guò)不需要的行。
第30單元 生成合成正弦波
繪制正弦波:
創(chuàng)建一個(gè)連續(xù)整數(shù)數(shù)組,將他們轉(zhuǎn)化為浮點(diǎn)數(shù),調(diào)整為正確的周期,取正弦,放大,置換,添加高斯噪聲,并模擬儀器測(cè)量得到的信號(hào)截?cái)嘈Ч?
#導(dǎo)入所有優(yōu)質(zhì)的模塊
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
#定叉了信號(hào)、噪聲和“儀器”屬性的常量
SIG_AMPLITUDE = 10; SIG_OFFSET = 2; SIG_PERIOD = 100
NOISE_AMPLITUDE = 3
N_SAMPLES= 5 * SIG_PERIOD
INSTRUMENT_RANGE = 9
#創(chuàng)建一個(gè)正弦波,并加入隨機(jī)噪聲
times = np.arange(N_SAMPLES).astype( float)
signal = SIG_AMPLITUDE*np.sin(2 * np.pi * times / SIG_PERIOD) + SIG_OFFSET
noise = NOISE_AMPLITUDE * np.random.normal(size=N_SAMPLES)
signal += noise
#將儀器測(cè)量范用之外的峰佔(zhàn)戒斷
signal[signal > INSTRUMENT_RANGE] = INSTRUMENT_RANGE
signal[signal< -INSTRUMENT_RANGE] = -INSTRUMENT_RANGE
#繪制結(jié)果
matplotlib.style.use("ggplot")
plt.plot(times, signal)
plt.title("Synthetic sine wave signal")
plt.xlabel("Time")
plt.ylabel("Signal +noise" )
plt.ylim(ymin = -SIG_AMPLITUDE, ymax = SIG_AMPLITUDE)
plt.show()
(
"Love all, trust a few, do wrong to none. 博愛(ài)、寡言、不負(fù)人"--梁靜茹
)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
