学习网站:【1】
List、Array数组的拼接、合并
sqls = list(map(lambda x: math.sqrt(x), ls))
sqls = [math.sqrt(x) for x in ls]
a = [1,2,3,4,5]
b = [5,4,3,2,1]
c = [a[i] - b[i] for i in range(len(a))]
print(c)
# print: [-4, -2, 0, 2, 4]
dt = [t[i+1] - t[i] for i in range(len(t)-1)]
from collections import OrderedDict
d = OrderedDict()
for x, y in zip(tv, sv):
d.setdefault(x, []).append(y)
# OrderedDict([(t0=t1, [s0, s1]), (t2, [s2]), (t3, [s3])])
tva, sva = zip(*((k, sum(v) / len(v)) for k, v in d.items()))
a.index(4)
from collections import CounterCounter(list1)
samp=np.random.permutation(9)
np.random.randint(0,10,size=[3,3])
random.sample(range(1, 10), 5)
np.repeat([1,10],3)
,np.tile([1,10],3)
。见 Linknp.c_
, np.r_
arr.min()
整个,arr.min(0)
按列,arr.min(1或-1)
按行。见Linknp.minimum(arr1, arr2)
。见Linktrc = trb[:8,:10]
trc = trb[::2,:]
np.argwhere(x > 3)
np.argmax(x)
np.where(arr == 4)
np.intersect1d(arr1, arr2)
。见Linknp.nonzero(np.in1d(tra, trb))
。见Linkdata = data[np.argsort(data[:,0])]
。见Linkz[::-1]
:倒序ih = heapq.nsmallest(k, range(len(h)), h.__getitem__) # 获取前k个h值最小的id
## Dataframe插入一列
df.insert(4,'E',[11,12,13,14,15])
# pd.DataFrame(np.insert(df.values, 0, values=[2, 3, 4], axis=1))
## Dataframe插入一行
pd.DataFrame(np.insert(df.values, 0, values=[2, 3, 4], axis=0))
pandas: DataFrame数据的更改、插入新增的列和行
pandas: DataFrame指定位置增加删除一行一列
pandas: 添加行
b.reset_index(drop=True)
##局部修改
df.rename(columns={'改前':'改后'},index={'改前':'改后'})
##全部修改
df.index=ls
df = df.set_index('month') ## 将df其中的一列时间戳设置成索引
df.iloc[index, :] # 这里的 :可以改为具体的索引
df.loc[index, :]
# df.loc[0:5] 取出0~5,共6行
# df.iloc[0:5] 取出0~4,共5行
df1 = df.iloc[:,[0,1,2]]
df1 = df[['name_a','name_b']]
# df1 = df.iloc[:,['a','b','c']] # 不太对呢
当用行索引的时候, 尽量用 iloc 来进行索引; 而用标签索引的时候用 loc
python 列表 按照 指定索引 排序
# 一行 series
seriesxxx.str.cat(sep='_') # sep分隔符, na_rep缺失值填补
# 二维 dataframe
dfxxx['last_name'].map(str).str.cat([ncvt22['first_name'], ncvt22['middle_name']],sep='_',na_rep='?')
data.drop_duplicates(subset=['A','B'],keep='first',inplace=True)
voter = pd.read_csv('xxx.txt', sep='\t') # 分隔符sep
with open("xxx.json") as f1:
data0 = json.load(f1)
# data = np.array(data0)
with open(outpath, 'w') as f2:
json.dump(data0, f2)
# json.dump(data.tolist(), f2)
os.chdir()
:改变当前工作目录到指定的路径。os.chdir('..')
:切换当前路径到上一层目录,可用于临时协调相对路径不一致的函数import引用os.getcwd()
:获取调用脚本的路径files = os.listdir(path) # 读取文件夹下的所有文件名
os.mkdir(outpath) # 创建新文件夹
os.path.exists(path) # 判断路径是否存在
os.path.join('C', 'programe files', 'users') # 合成路径
# 1)
with open("test.txt",mode='a',encoding='utf-8') as ff:
# 2)
if not os.path.isdir(dir_name):
os.makedirs(dir_name)
# 3)
fp = open("CSDN.txt",'w')#如果有这个文件就打开,如果没有这个文件就创建一个名叫CSDN的txt文件
def check_filename_available(tt):
'''
:param tt: 纯文件名(不含扩展名.png)
:return: 如果已有同名文件,则创建编号0,1,2,...,以避免保存新文件覆盖旧文件
'''
n = [0]
def check_meta(file_name):
file_name_new = file_name
if os.path.isfile(file_name):
file_name_new = file_name[:file_name.rfind('.')] + '_' + str(n[0]) + file_name[file_name.rfind('.'):]
n[0] += 1
if os.path.isfile(file_name_new):
file_name_new = check_meta(file_name)
return file_name_new
return_name = check_meta('./Figures/'+tt+'.png')
return return_name
【1】 Python-import 导入上级目录文件
【2】 python3 使用相对路径 import模块
运算 | 符号 | 例子 |
---|---|---|
幂 | ** | 4**3 = 64 |
异或 | ^ | 4^3 = 7 |
整除 | // | 9//2 = 4 |
from scipy.special import comb, perm
perm(3, 2) ## A_3^2 = 6.0
comb(3, 2) ## C_3^2 = 3.0
>>> f = (4/3)*x + 2*y
>>> integrate(f, (x, 0, 1), (y, -x, x))
x
from scipy import integrate
def f(x, y):
return x*y
def bounds_y():
return [0, 0.5]
def bounds_x(y):
return [0, 1-2*y]
print(integrate.nquad(f, [bounds_x, bounds_y]))
Python数据分析中Numpy和Pandas对比
dataframe ↔ array 相互转换:见 Link
import time
tic = time.time()
toc = time.time()
print('the time used:{} s'.format(toc - tic))
del a
reset
→ (y/[n])? → y
pwd
import numpy as np
import matplotlib.pylab as plt
def sigmoid(x):
return 1/(1+np.exp(-x)) # sigmoid函数
x = np.arange(-6.0,6.0,0.1) # 限定x的范围,给什么区间画出来的就是在哪个区间
y = sigmoid(x) # 求y值
plt.plot(x,y)
plt.title("sigmoid")
plt.ylim(0,1) # 指定y轴的范围,画出来的效果不一样
plt.show()
import matplotlib.pyplot as plt
plt.figure()
# plt.hold(True)
plt.plot(x11,y11,'bp--')
plt.xlabel('kh')
plt.ylabel('precision')
# plt.legend()
plt.title('repeat'+str(qn))
plt.ylim(0.55,1.05)
plt.savefig('./precision2000/os_'+str(os))
plt.show()
import matplotlib.pyplot as plt
Python绘图——Matplotlib教程(详细版)前半部分
Python绘图——Matplotlib文档(详细版)后半部分
Pyplot tutorial
Python 绘图,我只用 Matplotlib(二)
import seaborn as sns
数据可视化 Seaborn简单介绍
10分钟python图表绘制 | seaborn入门(一):distplot与kdeplot
matplotlib contour 画等高线图
'''_________'''
括起。'''_________'''
括起。assert· tl >= tlq, "please adjust tl or tlq"
sys.exit()
:直接结束进程A1:【1】【2】使用 read_csv() 函数的 chunksize
参数来分块读取文件。这将返回一个迭代器,可以逐块读取文件。
import pandas as pd
chunksize = 1000000 # 设置块大小为100万行
for chunk in pd.read_csv('large_file.csv', chunksize=chunksize):
# 在这里处理每个块