python常用函數解析

enumerate() 函數

  • 函數:enumerate(sequence, [start=0]) #第二個參數爲指定索引
  • 功能:enumerate()函數用於將一個可遍歷的數據對象(如列表、元組或字符串)組合爲一個索引序列,同時列出數據和數據下標,一般用在 for循環當中。即將可循環序列sequence以start開始分別列出序列數據和數據下標
  • 參考博客:http://www.cnblogs.com/yizhenfeng/p/7596113.html

pickle

  • python的pickle模塊實現了基本的數據序列和反序列化。通過pickle模塊的序列化操作我們能夠將程序中運行的對象信息保存到文件中去,即轉換爲一種可以傳輸或存儲的格式,以便永久存儲,但pickle序列化後的數據,可讀性差;通過pickle模塊的反序列化操作,我們能夠從文件中創建上一次程序保存的對象。
    pickle.dump(obj, file[, protocol])
  • 功能:序列化對象,將對象obj保存到文件file中。
  • 參數:
    protocol:序列化使用的協議版本,默認值爲0。0:ASCII協議,所序列化的對象使用可打印的ASCII碼錶示(以文本的形式序列化);1:老式的二進制協議;2:2.3版本引入的新二進制協議。
    file:對象保存到的類文件對象。file必須有write()接口, file可以是一個以’w’方式打開的文件或者一個StringIO對象或者其他任何實現write()接口的對象。
    pickle.load(file)
  • 功能:反序列化對象。將文件中的數據解析爲一個Python對象。
  • 參數: file:類文件對象,有read()和readline()接口。
  • 參考博客:http://www.cnblogs.com/yizhenfeng/p/7596113.html
# 使用pickle模塊將數據對象保存到文件
# pickle是完全用Python來實現的模塊,這個CPickle是用C來實現的,它的速度要比pickle快好多倍,一般建議如果電腦中只要有CPickle的話都應該使用它。
try:
    import cPlickle as pickle
except:
    import pickle
# import pprint
import pickle
b = 7
i = 13000000
fa = 99.056
s = '中國人民 123abc'
lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
tu = (-5, 10, 8)
coll = {4, 5, 6}
dic = {'x': [1, 2.0, 3, 4+6j],
       'y': ('string', u'Unicode string'),
       'z': None}
f = open('sample_pickle.dat', 'wb')    # 以寫模式打開二進制文件
# f = open('data.pkl', 'wb')
try:
    pickle.dump(b, f)      # 對象個數
    pickle.dump(i, f)      # 寫入整數
    pickle.dump(fa, f)     # 寫入字符串
    pickle.dump(s, f)      # 寫入浮點數
    pickle.dump(lst, f)    # 寫入列表
    pickle.dump(tu, f)     # 寫入元組
    pickle.dump(coll, f)   # 寫入集合
    pickle.dump(dic, f)    # 寫入字典
except:
    print('寫文件異常')
finally:
    f.close()
        
# 使用pickle模塊讀取'sample_pickle.dat'內的二進制內容,進而從文件中重構python對象
f = open('sample_pickle.dat', 'rb')
 n = pickle.load(f)    # 讀出文件的數據個數
 for c in range(n):
     data = pickle.load(f)
     print('反序列化:', data)
     f.close()

np.concatenatee((a1,a2,…),axis=0)

  • 功能:能夠一次完成多個數組的拼接。其中a1,a2,…是數組類型的參數,適合大規模的數據拼接。
  • 參考博客:https://blog.csdn.net/qq_38150441/article/details/80488800
 
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[11, 21, 31], [7, 8, 9]])
print(np.concatenate((a, b), axis=0))
print(np.concatenate((a, b), axis=1)) # axis=1表示對應行的數組進行拼接

stack**

  • 函數:numpy.stack(arrays, axis=0)
  • 參數:
    1. 數組:array_like的序列每個數組必須具有相同的形狀。
    2. axis:int,可選輸入數組沿其堆疊的結果數組中的軸。如果axis=0,它將是第一個維度,如果 axis=-1,它將是最後一個維度。
    3. 返回: 堆疊:ndarray堆疊數組比輸入數組多一個維。
  • 功能:沿着新軸連接數組的序列。
  • 參考博客(簡單易懂):https://blog.csdn.net/qq_17550379/article/details/78934529

np.clip

  • 函數:clip(a, a_min, a_max, out=None)
  • 參數:
  • 功能:將數組a中的所有數限定到範圍a_min和a_max中,即a中所有比a_min小的數都會強制變爲a_min,a中所有比a_max大的數都會強制變爲a_max.
  • 參考博客:https://www.cnblogs.com/cloud-ken/p/9946341.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章