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')