Python學習記錄-pandas numpy

1. 基礎用法

  • Python屬性的寫法
class MyClass(object):

    @property
    def myProperty(self):
        return self._privateProperty
    
    @myProperty.setter
    def myProperty(self, pro):
        self._privatePerperty

上面會爲類MyClass聲明一個屬性,使用點語法進行存取;

  • 讀取某一文件夾下的子文件
def _filenames(self, filedir):
    for root, dirs, files in os.walk(filedir):
        print "root: {0}".format(root)
        print "dirs: {0}".format(dirs)
        print "files: {0}".format(files)
  • mark一個[for]用法
index_list = [i+1 in i in np.arange(40000)]
# 生成1~40000
my_list = [index_list[i] for i in np.random.permutation(np.arange(len(index_list))]
# 生成打亂的1~40000

2. pandas庫

import pandas as pd
pandas可看作是一個excel的代碼操作庫;

# 讀取csv文件
file = pd.read_csv(filePath, header=0)
# filePath爲csv文件的路徑,header=0是說不加表頭
# 讀取後可使用下面的方法更改列的名字
file.columns = ['x', 'y', 'z']

# 連接操作
file2 = pd.read_csv(file2Path)
contact = pd.concat([file, file2], axis=1) #連接操作axis=1時是橫向連接

# 插入操作
data = pd.DataFrame(contact)
data.columns = ['x', 'y', 'z', 'b']
data.insert(3, 'a', 0) # 在第3列後插入名爲'a'的列,值爲0

# 交換兩列(列名同時交換)
data.loc[:, ['a', 'b']] = data.loc[:, ['b', 'a']].values 
# 保存frame到csv文件中
data.to_csv(./file.csv', index=False, header=False)
# index, header分別代碼行名和列名,False代表不保存名稱


file = pd.read_csv(filePath, header=0)
pdata = pd.DataFrame(np.reshape(data, (-1, 6)), columns=['x', 'y', 'z'])
pdata[['x', 'y', 'z']].astype('float64').to_csv('./transnpy.csv', index=None, header=None)
# 這裏reshape中的-1是一個佔位符,表示該維度上的維數由數據自行算出
# 上面這段將csv取出的數據轉換爲ndarray並更改shape,再重新存到csv文件中

3. numpy庫

import numpy as np
假如有一個ndarray類型的變量,data;將data中的數列保存爲list,在對data進行訪問時要比對list進行訪問花費時間要大很多,如下:

print(np.shape(data)) # (10000, 6)
x = [data[i][0] for i in range(len(data[:, 0]))]

for i in range(len(x)):
    value = x[i]
    
for i in range(len(x)):
    value = data[i][0]

將ndarray數據保存到npy文件中,loading from npy is 30x faster than loading from pickle;
將一個從cvs文件中讀出的數組轉化爲ndarray並保存爲npy文件:

# 保存和讀取npy文件
np.save('./data.npy', data)
npy = np.load('./data.npy')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章