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

你可能感兴趣的:(Python学习)