A. python如何用字典統計列表中不同元素個數
打開pycharm工具,新建python文件,打開文件並定義列表k,進行賦值
B. 利用python進行數據分析 用什麼軟體
與數據分析相關的 Python 庫
NumPy
NumPy 是 Python 科學計算的基礎包,它提供:
快速高效的多維數組對象 ndarray;
直接對數組執行數學運算及對數組執行元素級計算的函數;
線性代數運算、隨機數生成;
將 C、C++、Fortran 代碼集成到 Python 的工具等。
它專為進行嚴格的數字處理而產生。多為很多大型金融公司使用,以及核心的科學計算組織如:Lawrence Livermore,NASA 用其處理一些本來使用 C++,Fortran 或Matlab 等所做的任務。
Pandas
Pandas 主要提供快速便捷地處理結構化數據的大量數據結構和函數。
Matplotlib
Matplotlib 是最流行的用於繪制數據圖表的 Python 庫。
IPython
IPython 是 Python 科學計算標准工具集的組成部分,是一個增強的 Python Shell,目的是提高編寫、測試、調試 Python 代碼的速度。主要用於互動式數據處理和利用matplotlib 對數據進行可視化處理。
SciPy
SciPy 是一組專門解決科學計算中各種標准問題域的包的集合。主要包括以下包:
scipy.integrate: 數值積分常式和微分方程求解器;
scipy.linalg: 擴展了由 numpy.linalg 提供的線性代數常式和矩陣分解功能;
scipy.optimize: 函數優化器以及根查找演算法;
scipy.signal: 信號處理工具;
scipy.sparse: 稀疏矩陣和稀疏線性系統求解器;
scipy.special: SPECFUN(這是一個實現了許多常用數學函數的 Fortran 庫)的包裝器。
scipy.stats: 標准連續和離散概率分布、各種統計檢驗方法和更好的描述統計法;
scipy.weave: 利用內聯 C++ 代碼加速數組計算的工具。
C. 有哪些工具可以統計每周開發提交的具體python代碼行數
Python 不僅僅是一個設計優秀的程序語言,它能夠完成現實中的各種任務,你可以在任何場合應用Python, 從網站和游戲開發到機器人和太空梭控制。 盡管如此,Python 的應用領域分為下面幾類。下文將介紹一些Python 具體能幫我們做的事情
D. 一名Python程序員會哪些好用的工具
很多Python學習者想必都會有如下感悟:最開始學習Python的時候,因為沒有去探索好用的工具,吃了很多苦頭。後來工作中深刻體會到,合理使用開發的工具的便利和高效。今天,我就把Python程序員使用頻率比較高的5款開發工具推薦給大家,希望對大家的工作和學習有幫助。
一、最強終端:Upterm
本來想推薦 fish 或者 zsh,但其實這兩個我也主要是貪圖自動補全這個特性。最近在用的這個 Upterm 其實很簡單好用,它是一個全平台的終端,可以說是終端里的 IDE,有著強大的自動補全功能。之前的名字叫 BlackWindow,有人跟他說這個名字不利於社區推廣,改名叫 Upterm 之後現在已經17000+ Star了。
二、互動式解釋器:Ptpython
一個互動式的 Python 解釋器。支持語法高亮、提示甚至是 vim 和 emacs 的鍵入模式。其實我們在課程里提供的在線終端也內置了 ptpython。
三、包管理必備:Anaconda
強烈推薦Anaconda ,它能幫你安裝好許多麻煩的東西,包括: Python 環境、pip 包管理工具、常用的庫、配置好環境路徑等等。這些事情小白自己一個個去做的話,容易遇到各種問題,帶來挫敗感。如果你想用Python搞數據方面的事情,就安裝它就好了,它甚至開發了一套JIT的解釋器Numba。所以 Anaconda有了JIT之後,對線上科學計算效率要求比較高的東西也可以搞了。
四、編輯器:Sublime3
小白的話當然還是推薦從PyCharm開始上手,但有時候寫一些輕量的小腳本,就會想用輕量級一點的工具。Sublime3很多地方都有了極大的提升,並且用起來比原來還要簡單。配合安裝Anaconda或CodeIntel插件,可以讓 Sublime擁有近乎IDE的體驗。
五、前端在線編輯器:CodeSandbox
雖然這個不算是真正意義上的Python開發工具,但如果後端工程師想寫前端的話,這個在線編輯器太方便了,簡直是節省了後端工程師的生命啊!不用安裝npm的幾千個包了,它已經在雲端完成了,采讓你直接就可以上手寫代碼、看效果。對於 React、Vue 這些主流前端框架都支持。算是一個推薦補充吧。
E. arcgis 怎麼用python做統計分析
方法/步驟
1
打開arcmap軟體,點擊工具欄上的ArcToolbox工具箱,在工具箱裡面選擇要進行數據處理的工具(工具的選擇視數據處理的內容而定),本文選擇了「Define Projection」定義投影的工具進行說明。
雙擊此工具,在彈出的工具窗口點擊右下角的「Show Help>>」按鈕。
2
點擊「Tool Help」按鈕,此時就打開了軟體的幫助文檔並定位到了此工具(define projection)對應的頁面,往下拉動滾動條,定位到此工具的python腳本的內容:
Syntax 介紹了此工具腳本的語法
Code Sample 介紹了腳本使用的例子
拷貝腳本使用例子裡面的代碼。
3
在軟體的主界面點擊「Geoprocessing」菜單-->點擊「Python」菜單項,即出現內嵌在arcigis中的python工具窗口。
python工具窗口的左邊是代碼編輯區域,右邊是信息提示區域。
4
把第2步拷貝的代碼語句粘貼到python工具窗口的左邊區域,修改一下工具腳本的參數(視具體工具和數據而定),連續點擊兩下回車鍵。
5
等待腳本程序的執行完成,完成之後在桌面右下角會彈出提示信息,同時pythong工具窗口的右邊區域也會有具體的工具腳本執行信息。
6
執行完成之後,在arcmap載入處理過的數據,右鍵查看屬性,可以看到通過此工具腳本(define projection)進行投影定義的數據已經具有了投影參數。
http://jingyan..com/article/eae07827ba96a51fec548513.html
F. 如何用python寫 數據分析工具
數據導入
導入本地的或者web端的CSV文件;
數據變換;
數據統計描述;
假設檢驗
單樣本t檢驗;
可視化;
創建自定義函數。
數據導入
這是很關鍵的一步,為了後續的分析我們首先需要導入數據。通常來說,數據是CSV格式,就算不是,至少也可以轉換成CSV格式。在Python中,我們的操作如下:
Python
1
2
3
4
5
6
7
8
import pandas as pd
# Reading data locally
df = pd.read_csv('/Users/al-ahmadgaidasaad/Documents/d.csv')
# Reading data from web
data_url = "t/Analysis-with-Programming/master/2014/Python/Numerical-Descriptions-of-the-Data/data.csv"
df = pd.read_csv(data_url)
為了讀取本地CSV文件,我們需要pandas這個數據分析庫中的相應模塊。其中的read_csv函數能夠讀取本地和web數據。
數據變換
既然在工作空間有了數據,接下來就是數據變換。統計學家和科學家們通常會在這一步移除分析中的非必要數據。我們先看看數據:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Head of the data
print df.head()
# OUTPUT
0 12432934148330010553
1 41589235 4287806335257
2 17871922 19551074 4544
317152 14501 3536 1960731687
4 12662385 25303315 8520
# Tail of the data
print df.tail()
# OUTPUT
74 2505 20878 3519 1973716513
7560303 40065 7062 1942261808
76 63116756 3561 1591023349
7713345 38902 2583 1109668663
78 2623 18264 3745 1678716900
對R語言程序員來說,上述操作等價於通過print(head(df))來列印數據的前6行,以及通過print(tail(df))來列印數據的後6行。當然Python中,默認列印是5行,而R則是6行。因此R的代碼head(df, n = 10),在Python中就是df.head(n = 10),列印數據尾部也是同樣道理。
在R語言中,數據列和行的名字通過colnames和rownames來分別進行提取。在Python中,我們則使用columns和index屬性來提取,如下:
Python
1
2
3
4
5
6
7
8
9
10
11
# Extracting column names
print df.columns
# OUTPUT
Index([u'Abra', u'Apayao', u'Benguet', u'Ifugao', u'Kalinga'], dtype='object')
# Extracting row names or the index
print df.index
# OUTPUT
Int64Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], dtype='int64')
數據轉置使用T方法,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Transpose data
print df.T
# OUTPUT
01 23 45 67 89
Abra1243 41581787171521266 5576 927215401039 5424
Apayao2934 92351922145012385 7452109917038138210588
Benguet148 42871955 353625307712796 24632592 1064
Ifugao3300
... 69 70 71 72 73 74 75 76 77
Abra ...12763 247059094 620913316 250560303 631113345
Apayao ...376251953235126 6335386132087840065 675638902
Benguet... 2354 4045 5987 3530 2585 3519 7062 3561 2583
Ifugao ... 9838171251894015560 774619737194221591011096
Kalinga...
78
Abra2623
Apayao 18264
Benguet 3745
Ifugao 16787
Kalinga16900
Other transformations such as sort can be done using<code>sort</code>attribute. Now let's extract a specific column. In Python, we do it using either<code>iloc</code>or<code>ix</code>attributes, but<code>ix</code>is more robust and thus I prefer it. Assuming we want the head of the first column of the data, we have
其他變換,例如排序就是用sort屬性。現在我們提取特定的某列數據。Python中,可以使用iloc或者ix屬性。但是我更喜歡用ix,因為它更穩定一些。假設我們需數據第一列的前5行,我們有:
Python
1
2
3
4
5
6
7
8
9
print df.ix[:, 0].head()
# OUTPUT
0 1243
1 4158
2 1787
317152
4 1266
Name: Abra, dtype: int64
順便提一下,Python的索引是從0開始而非1。為了取出從11到20行的前3列數據,我們有:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
print df.ix[10:20, 0:3]
# OUTPUT
AbraApayaoBenguet
109811311 2560
1127366 15093 3039
12 11001701 2382
13 7212 11001 1088
14 10481427 2847
1525679 15661 2942
16 10552191 2119
17 54376461734
18 10291183 2302
1923710 12222 2598
20 10912343 2654
上述命令相當於df.ix[10:20, ['Abra', 'Apayao', 'Benguet']]。
為了舍棄數據中的列,這里是列1(Apayao)和列2(Benguet),我們使用drop屬性,如下:
Python
1
2
3
4
5
6
7
8
9
print df.drop(df.columns[[1, 2]], axis = 1).head()
# OUTPUT
AbraIfugaoKalinga
0 1243330010553
1 4158806335257
2 17871074 4544
317152 1960731687
4 12663315 8520
axis參數告訴函數到底舍棄列還是行。如果axis等於0,那麼就舍棄行。
統計描述
下一步就是通過describe屬性,對數據的統計特性進行描述:
Python
1
2
3
4
5
6
7
8
9
10
11
12
print df.describe()
# OUTPUT
AbraApayaoBenguetIfugao Kalinga
count 79.000000 79.00000079.000000 79.000000 79.000000
mean 12874.37974716860.6455703237.39240512414.62025330446.417722
std16746.46694515448.1537941588.536429 5034.28201922245.707692
min927.000000401.000000 148.000000 1074.000000 2346.000000
25% 1524.000000 3435.5000002328.000000 8205.000000 8601.500000
50% 5790.00000010588.0000003202.00000013044.00000024494.000000
75%13330.50000033289.0000003918.50000016099.50000052510.500000
max60303.00000054625.0000008813.00000021031.00000068663.000000
假設檢驗
Python有一個很好的統計推斷包。那就是scipy裡面的stats。ttest_1samp實現了單樣本t檢驗。因此,如果我們想檢驗數據Abra列的稻穀產量均值,通過零假設,這里我們假定總體稻穀產量均值為15000,我們有:
Python
1
2
3
4
5
6
7
from scipy import stats as ss
# Perform one sample t-test using 1500 as the true mean
print ss.ttest_1samp(a = df.ix[:, 'Abra'], popmean = 15000)
# OUTPUT
(-1.1281738488299586, 0.26270472069109496)
返回下述值組成的元祖:
t : 浮點或數組類型
t統計量
prob : 浮點或數組類型
two-tailed p-value 雙側概率值
通過上面的輸出,看到p值是0.267遠大於α等於0.05,因此沒有充分的證據說平均稻穀產量不是150000。將這個檢驗應用到所有的變數,同樣假設均值為15000,我們有:
Python
1
2
3
4
5
6
print ss.ttest_1samp(a = df, popmean = 15000)
# OUTPUT
(array([ -1.12817385, 1.07053437, -65.81425599,-4.564575, 6.17156198]),
array([2.62704721e-01, 2.87680340e-01, 4.15643528e-70,
1.83764399e-05, 2.82461897e-08]))
第一個數組是t統計量,第二個數組則是相應的p值。
可視化
Python中有許多可視化模塊,最流行的當屬matpalotlib庫。稍加提及,我們也可選擇bokeh和seaborn模塊。之前的博文中,我已經說明了matplotlib庫中的盒須圖模塊功能。
;
重復100次; 然後
計算出置信區間包含真實均值的百分比
Python中,程序如下:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import numpy as np
import scipy.stats as ss
def case(n = 10, mu = 3, sigma = np.sqrt(5), p = 0.025, rep = 100):
m = np.zeros((rep, 4))
for i in range(rep):
norm = np.random.normal(loc = mu, scale = sigma, size = n)
xbar = np.mean(norm)
low = xbar - ss.norm.ppf(q = 1 - p) * (sigma / np.sqrt(n))
up = xbar + ss.norm.ppf(q = 1 - p) * (sigma / np.sqrt(n))
if (mu > low) & (mu < up):
rem = 1
else:
rem = 0
m[i, :] = [xbar, low, up, rem]
inside = np.sum(m[:, 3])
per = inside / rep
desc = "There are " + str(inside) + " confidence intervals that contain "
"the true mean (" + str(mu) + "), that is " + str(per) + " percent of the total CIs"
return {"Matrix": m, "Decision": desc}
上述代碼讀起來很簡單,但是循環的時候就很慢了。下面針對上述代碼進行了改進,這多虧了Python專家,看我上篇博文的15條意見吧。
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import numpy as np
import scipy.stats as ss
def case2(n = 10, mu = 3, sigma = np.sqrt(5), p = 0.025, rep = 100):
scaled_crit = ss.norm.ppf(q = 1 - p) * (sigma / np.sqrt(n))
norm = np.random.normal(loc = mu, scale = sigma, size = (rep, n))
xbar = norm.mean(1)
low = xbar - scaled_crit
up = xbar + scaled_crit
rem = (mu > low) & (mu < up)
m = np.c_[xbar, low, up, rem]
inside = np.sum(m[:, 3])
per = inside / rep
desc = "There are " + str(inside) + " confidence intervals that contain "
"the true mean (" + str(mu) + "), that is " + str(per) + " percent of the total CIs"
return {"Matrix": m, "Decision": desc}
更新
那些對於本文ipython notebook版本感興趣的,請點擊這里。這篇文章由Nuttens Claude負責轉換成ipython notebook 。
G. Python 統計列表裡面有多少個元素
Python 統計列表裡面有多少個元素步驟如下:
1、打開python語言命令窗口,定義一個列表變數Z並列印對應的列表值。
H. python數據分析需要哪些庫
1.Numpy庫
是Python開源的數值計算擴展工具,提供了Python對多維數組的支持,能夠支持高級的維度數組與矩陣運算。此外,針對數組運算也提供了大量的數學函數庫,Numpy是大部分Python科學計算的基礎,具有很多功能。
2.Pandas庫
是一個基於Numpy的數據分析包,為了解決數據分析任務而創建的。Pandas中納入了大量庫和標準的數據模型,提供了高效地操作大型數據集所需要的函數和方法,使用戶能快速便捷地處理數據。
3.Matplotlib庫
是一個用在Python中繪制數組的2D圖形庫,雖然它起源於模仿MATLAB圖形命令,但它獨立於MATLAB,可以通過Pythonic和面向對象的方式使用,是Python中Z出色的繪圖庫。主要用純Python語言編寫的,它大量使用Numpy和其他擴展代碼,即使對大型數組也能提供良好的性能。
4.Seaborn庫
是Python中基於Matplotlib的數據可視化工具,提供了很多高層封裝的函數,幫助數據分析人員快速繪制美觀的數據圖形,從而避免了許多額外的參數配置問題。
5.NLTK庫
被稱為使用Python進行教學和計算語言學工作的Z佳工具,以及用自然語言進行游戲的神奇圖書館。NLTK是一個領先的平台,用於構建使用人類語言數據的Python程序,它為超過50個語料庫和詞彙資源提供了易於使用的介面,還提供了一套文本處理庫,用於分類、標記化、詞干化、解析和語義推理、NLP庫的包裝器和一個活躍的討論社區。