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

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