js表格中将每行的两个数据求和显示_python数据分析相关【一】
一、numpy簡單運算
- 數(shù)組運算--可以理解為矩陣運算
- dtype屬性可以顯示數(shù)據(jù)類型,并可以通過其指定數(shù)據(jù)類型
- 可以通過astype方法調(diào)整數(shù)據(jù)類型
- 通過numpy生成小數(shù)數(shù)組,并使用np.round()保留特定位數(shù)小數(shù)
- np.arrange(12)-->生成一維數(shù)組
- np.array([[1,2,3],[4,5,6]])
- 通過t.shape可以看出變量t是幾維數(shù)組
- t.reshape 可以幫助我們修改形狀,可以把一維變成二維、三維等
在三維數(shù)據(jù)中,形狀是(2,3,4)的,2表示數(shù)據(jù)分為上下兩塊,3表示3行,4表示4列
當(dāng)然,reshape也可以三維變二維,可以看到reshape是直接有返回值的,并不會改變t3本來的形狀。上一張圖有賦值操作,所以改變了t3的形狀。
三維變二維三維變一維,t3.reshape((24,)),reshape括號中只能填一個數(shù),填2個數(shù)還是會變成二維數(shù)組
三維變一維- 如果對數(shù)組內(nèi)容未知,如何變成一維呢?①使用t.shape[0],t.shape[1]求解;②使用t.flatten()方法求解:按照行展開。
- 數(shù)組和數(shù)的計算
加:對數(shù)組內(nèi)每個數(shù)組均作相加運算,這是numpy的廣播機制
減乘除:均有廣播機制
/0 出現(xiàn)warning,程序仍可以執(zhí)行--->0/0=nan 1/0=inf其中,NAN表示not a number,不是一個數(shù)字;inf表示無限、無窮的
- 數(shù)組和數(shù)組的計算
對應(yīng)相同維度相同形狀的:
加:對應(yīng)位置相加
減乘除:均為對應(yīng)位置相加
對應(yīng)不同維度的、相同數(shù)據(jù)寬度的:
二維對一維:二維數(shù)組中的每行或者每列都與一維數(shù)組做運算
每行每列按照行、按照列都不能計算的形狀不同的數(shù)組,會報錯。
- 如果兩個數(shù)組的后緣維度(即從末尾開始算起的維度) 的軸長度相符或者其中一方的長度為1,則認為它們是廣播兼容的。廣播會在缺失或長度為1的維度上進行。
二、 軸
一維數(shù)組、二維、三維
對于一維數(shù)組,只有一個0軸;對于二維數(shù)組,shape(2,2),有0軸和1軸;以此類推,三維數(shù)組有0,1,2三軸。
如何計算二維數(shù)組的的平均值,按照axis=0來計算
Numpy讀取數(shù)據(jù)
Pandas讀取本地數(shù)據(jù)更加強大。
如何讀取數(shù)據(jù)
CSV:逗號分隔文件
Csv讀取文件
代碼:np.loadtxt()
默認逗號分隔,默認是科學(xué)計數(shù)法表示
數(shù)組的轉(zhuǎn)置
多種方法可以實現(xiàn)數(shù)組的轉(zhuǎn)置
t.T 這是個屬性
t.swapaxes(1,0) 交換軸
t.transpose() 轉(zhuǎn)置
三、索引 切片
取行、取列
取行列的方法類似;對于不連續(xù)的多行或多列,通過[]括起來即可。
如何取多個不相鄰的點呢?
numpy中數(shù)值的修改
- 簡單修改,對取出來的區(qū)域直接賦值即可
- 如何取小于10的值【利用布爾索引】
t2<10-->在數(shù)組中符合條件的會顯示True
通過這樣,可以取出符合條件的數(shù)值,并進行值得修改
t2[t2<10] = 10
- 三元運算符:np.where(t<10,0,10)
t<10的值賦值為0 t>=10的值賦值10
- clip操作(裁剪):如何做到 小于10的替換為10 大于18的替換為18
通過t.clip(10,18)
其中,nan是什么?nan是一個浮點類型的數(shù)據(jù)。
可以通過以下代碼:
import即可把數(shù)組中某值變成nan
四、numpy中的nan和inf
- nan:not a number 表示不是一個數(shù)字
- nan的特性
nan和nan不相等
可以利用兩個nan不相等的性質(zhì),判斷數(shù)組中的nan的個數(shù)
np.count_nonzero(t) -->用來判斷數(shù)組中不為0【非0---> True】的數(shù)值個數(shù)
np.count_nonzero(t!=t) --->用來判斷數(shù)組中為NAN的數(shù)值個數(shù)
np.isnan(t) --->判斷數(shù)組中為NAN的數(shù)值 效果和t!=t類似
所以也可以用np.count_nonzero(np.isnan(t))
- nan和任何值計算都是nan
- np.sum(t,axis=0) ---->按照0軸方向計算求和、按列方向求和【按照0軸方向求和,所得結(jié)果形狀和0軸方向形狀相同】
- np.sum(t,axis=1) ---->按照1軸方向計算求和、按行方向求和
- np.sum(t)----->沒有指定軸,默認求數(shù)組所有元素的和
- 在一組數(shù)據(jù)中,把缺失數(shù)據(jù)nan不能全部替換為0。一般方式為把缺失的數(shù)值替換為均值或者中值,或者直接刪除有缺失值的一行(pandas)
- numpy常用統(tǒng)計函數(shù)
- 把數(shù)值中的nan替換成均值或中值
五、小結(jié)
- 如何選擇一行或多行的數(shù)據(jù)?
切片或索引,逗號前面是行、逗號后面是列的選擇。
- 如何給選取的行或者列賦值?
t[2:,3] = 3 ---->通過索引選中某值后,再賦值
- 如何把大于10的值替換為10?
通過布爾索引:t[t>10] = 10
- np.where如何使用?
- np.clip如何使用?
- 如何進行轉(zhuǎn)置?
- 讀取本地文件
- np.nan和np.inf是什么?
nan-->不是一個數(shù)字
np.nan != np.nan
np.count_nonzero(np.nan!=np.nan)-->統(tǒng)計數(shù)組中有多少個nan
np.isnan(t) -->統(tǒng)計數(shù)組中有多少個nan,效果一致
inf---->表示無窮
- 常用的統(tǒng)計函數(shù)有幾個?
t.sum(axis=0) ---> 在行方向進行計算,計算每列的和
t.mean(axis=0) --->計算每列的均值
np.median(t,axis=0) ----> np提供的全局方法
t.max()/ t.min() --> 最大/最小值
np.ptp --> 計算極差
t.std ---> 標準差 ---> 反映數(shù)據(jù)的穩(wěn)定程度
- 如何繪制直方圖?
1)首先尋找組距:計算一組值的最大值、最小值
2)設(shè)置大約的組距d,組數(shù)bit_nums=(最大值-最小值)// 組距
3)直方圖需要導(dǎo)入文件
from4)通過matplotlib組件開始畫圖
plt5)可以通過布爾索引,去掉一些極端的值,組距同時也要根據(jù)需要更正
- 如何通過散點圖繪制兩個變量x和y之間的關(guān)系?
此時如果需要去除一些極端的數(shù)值,需要從x,y所屬的數(shù)組進行選擇;否則可能不會一一對應(yīng)
總結(jié)
以上是生活随笔為你收集整理的js表格中将每行的两个数据求和显示_python数据分析相关【一】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python装饰器_Python装饰器是
- 下一篇: android mvvm livedat