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