摘要:以指定數目均勻分割區間。所以給定區間和,以及等分分割點數目,將返回一個數組。將一個函數應用于指定軸上的每一個元素。如果您熟悉,那么你也許聽說過數據透視表。內置的函數以的形式創建電子表格樣式的數據透視表,它可以幫助我們快速查看某幾列的數據。
一行代碼定義List
下面是使用For循環創建列表和用一行代碼創建列表的對比。
x = [1,2,3,4] out = [] for item in x: out.append(item**2) print(out) [1, 4, 9, 16] # vs. x = [1,2,3,4] out = [item**2 for item in x] print(out) [1, 4, 9, 16]Lambda表達式
厭倦了定義用不了幾次的函數? Lambda表達式是你的救星! Lambda表達式用于在Python中創建小型,一次性和匿名函數對象。 它能替你創建一個函數。
lambda表達式的基本語法是:
lambda arguments: expression
請注意,只要有一個lambda表達式,就可以完成常規函數可以執行的任何操作。 你可以從下面的例子中,感受lambda表達式的強大功能:
double = lambda x: x * 2 print(double(5)) 10Map和Filter
一旦掌握了lambda表達式,學習將它們與Map和Filter函數配合使用,可以實現更為強大的功能。
具體來說,map通過對列表中每個元素執行某種操作并將其轉換為新列表。 在本例中,它遍歷每個元素并乘以2,構成新列表。 請注意,list()函數只是將輸出轉換為列表類型。
# Map seq = [1, 2, 3, 4, 5] result = list(map(lambda var: var*2, seq)) print(result) [2, 4, 6, 8, 10]
Filter函數接受一個列表和一條規則,就像map一樣,但它通過比較每個元素和布爾過濾規則來返回原始列表的一個子集。
# Filter seq = [1, 2, 3, 4, 5] result = list(filter(lambda x: x > 2, seq)) print(result) [3, 4, 5]Arange和Linspace
Arange返回給定步長的等差列表。 它的三個參數start、stop、step分別表示起始值,結束值和步長, 請注意,stop點是一個“截止”值,因此它不會包含在數組輸出中。
# np.arange(start, stop, step) np.arange(3, 7, 2) array([3, 5])
Linspace和Arrange非常相似,但略有不同。 Linspace以指定數目均勻分割區間。 所以給定區間start和end,以及等分分割點數目num,linspace將返回一個NumPy數組。 這對繪圖時數據可視化和聲明坐標軸特別有用。
# np.linspace(start, stop, num) np.linspace(2.0, 3.0, num=5) array([ 2.0, 2.25, 2.5, 2.75, 3.0])Axis代表什么?
在Pandas中,刪除一列或在NumPy矩陣中求和值時,可能會遇到Axis。 我們用刪除一列(行)的例子:
df.drop("Column A", axis=1) df.drop("Row A", axis=0)
如果你想處理列,將Axis設置為1,如果你想要處理行,將其設置為0。 但為什么呢? 回想一下Pandas中的shape
df.shape (# of Rows, # of Columns)
從Pandas DataFrame中調用shape屬性返回一個元組,第一個值代表行數,第二個值代表列數。如果你想在Python中對其進行索引,則行數下標為0,列數下標為1,這很像我們如何聲明軸值。
Concat,Merge和Join如果您熟悉SQL,那么這些概念對您來說可能會更容易。 無論如何,這些函數本質上就是以特定方式組合DataFrame的方式。 在哪個時間跟蹤哪一個最適合使用可能很困難,所以讓我們回顧一下。
Concat允許用戶在表格下面或旁邊追加一個或多個DataFrame(取決于您如何定義軸)。
Merge將多個DataFrame合并指定主鍵(Key)相同的行。
Join,和Merge一樣,合并了兩個DataFrame。 但它不按某個指定的主鍵合并,而是根據相同的列名或行名合并。
Apply是為Pandas Series而設計的。如果你不太熟悉Series,可以將它想成類似Numpy的數組。
Apply將一個函數應用于指定軸上的每一個元素。 使用Apply,可以將DataFrame列(是一個Series)的值進行格式設置和操作,不用循環,非常有用!
df = pd.DataFrame([[4, 9],] * 3, columns=["A", "B"]) df A B 0 4 9 1 4 9 2 4 9 df.apply(np.sqrt) A B 0 2.0 3.0 1 2.0 3.0 2 2.0 3.0 df.apply(np.sum, axis=0) A 12 B 27 df.apply(np.sum, axis=1) 0 13 1 13 2 13Pivot Tables
最后是Pivot Tables。 如果您熟悉Microsoft Excel,那么你也許聽說過數據透視表。 Pandas內置的pivot_table函數以DataFrame的形式創建電子表格樣式的數據透視表,,它可以幫助我們快速查看某幾列的數據。 下面是幾個例子:非常智能地將數據按照“Manager”分了組
pd.pivot_table(df, index=["Manager", "Rep"])
或者也可以篩選屬性值
pd.pivot_table(df,index=["Manager","Rep"],values=["Price"])
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/42177.html
摘要:的批評者聲稱性能低效執行緩慢,但實際上并非如此嘗試以下個小技巧,可以加快應用程序。使用或者機器語言擴展包來執行關鍵任務能極大改善性能。但是如果你把求值的結果放入一個變量中,就能提高程序的性能。 Python是一門非常酷的語言,因為很少的Python代碼可以在短時間內做很多事情,并且,Python很容易就能支持多任務和多重處理。 Python的批評者聲稱Python性能低效、執行緩慢,...
摘要:本文分享自華為云社區使用技巧使用技巧,作者小聰不是小蔥。是一款開源的編輯器,擁有強大的功能,。由于擁有各種各樣的插件,這就使得可以做到的事情更多了。在使用的過程中,也是有很多技巧的,掌握一些技巧對于后期寫代碼也會輕松很多。 摘要:VsCode是一款開源的編輯器,擁有強大的功能,。由于擁有各...
摘要:使用或機器語言的外部功能包處理時間敏感任務,可以有效提高應用的運行效率。關鍵在于,優化循環方案是提高應用程序運行速度的上佳選擇。此外,關于交叉編譯是否為提高運行效率的最佳方法還存在討論的空間。在使用交叉編譯器時,記得確保它支持你所用的版本。 Python 是一門優秀的語言,它能讓你在短時間內通過極少量代碼就能完成許多操作。不僅如此,它還輕松支持多任務處理,比如多進程。 不喜歡 Pyt...
摘要:但是實際寫程序中,我們經常會寫出許多繁雜的丑陋的代碼。特別推薦,許多代碼讓我獲益匪淺,比如這里對的使用。用可以寫出很簡單直觀的代碼,如下當然,上面不考慮效率,這里有一個利用分治法思想的高效的方法。更多文章更多閱讀中參數的用法高級編程技巧 用 Python 時間也算不短了,但總感覺自己在用寫 C++ 代碼的思維寫 Python,沒有真正用到其作為腳本語言的優勢。之前刷 LeetCode ...
摘要:你可以進行如下操作需要注意的是這個竅門只適用于。在中就不需要進行操作了,因為它已經默認進行了。這里有幾個例子可以供你參考譯文出處本文根據的所譯,整個譯文帶有我自己的理解與思想,如果譯得不好或有不對之處還請同行朋友指點。 枚舉 不要這么做: i = 0 for item in iterable: print i, item i += 1 而是這樣: for...
閱讀 1121·2021-09-22 16:04
閱讀 1499·2019-08-30 15:43
閱讀 1109·2019-08-29 14:01
閱讀 3444·2019-08-26 12:19
閱讀 3359·2019-08-26 12:15
閱讀 1452·2019-08-26 12:13
閱讀 3270·2019-08-23 17:00
閱讀 1490·2019-08-23 15:38