Python for Data Analysis

numpy基础

嗯 调整了一些顺序

1 ndarray(n维数组)

导入数据、基本运算和数组生成

import numpy as np
#矢量化 将数据转化为数组
data=[[1,2,3],[4,5,6]]
arr=np.array(data,dtype=np.float64)
new_arr=arr.astype(np.int64)  #astype可以将字符串存储的数据转为数值
arr.ndim
arr.shapearr*arr
arr+arr
arr-arr  #相同大小的数组运算会传递到每个元素 不需要循环
1/arr
arr**0.5  #数组与标量运算
arr2=np.array([[3,2,1],[6,5,4]],dtype=np.float64)
arr2<arr  #大小相同的数组比较会产生布尔值 np.zeros(10)  #第一个参数是shape
np.ones((3,6))
np.empty((2,3,2))

2 索引

基本索引和切片

大致同列表 任何数组的视图上的修改都会反映到原数据上

arr_slice=arr[0]
arr_slice[:]=1
arr   #arr[0]全部转为1.
new=arr[5:8].copy()  #如果从副本上修改 不修改原arr需要用copy函数
arr[0,1]  #二维数组(两层中括号)的索引方式 [行,列]  高纬度依次类推
arr[0,1:]  #切片时可分别对一个轴切片 只有冒号为选取整个轴

布尔型索引

相当于虚拟变量(0 1) 可以用来匹配ID 条件筛选 总是创建副本

names=np.array(['Bob','A','B','Bob','C','D','E'])
data2=np.random.randn(7,4)  #生成随机矩阵
names == 'Bob'   #返回True/False的一维数组 各类判断都OK
#否定 (!=) 或者~(names=='A')  多个条件用&和 |
#and和or在布尔数组中无效
data2[names == 'Bob',2:]  #索引与切片结合 names长度应该与data2一致

花式索引

总是一维的 会复制到新数组

arr3=np.empty((8,4))
for i in range(8):arr3[i]=i
arr3  #eg1
arr3[[4,3,0,6]]  #以特定顺序选取子集
arr3[[-3,-5,-7]]arr4=np.arange(32).reshape(8,4)  #reshape整理数组 eg2
arr4[[1,5,7,2],[0,3,1,2]]  #选中的是(1,0)(5,3)(7,1)(2,2)
arr4[[1,5,7,2]][:,[0,3,1,2]]  #对每选中一维重新排序

数组转置&轴对称

arr.T  #不会复制新数组
np.dot(arr.T,arr)  #计算内积
arr5=np.arange(16).reshape((2,2,4))
arr5.transpose(1,0,2)  #第一、二轴互换
arr5.swapaxes(1,2)  #接受一对轴编号 返回视图

3 通用函数

元素级运算 接受一个out可选参数

np.sqrt(arr)  #开方
np.exp(arr)  #e的x次方
np.maximum(arr,arr2)  #返回两者中最大值
np.fmax(arr,arr2)  #忽略nan
np.minimum(arr,arr2)  #最小值
np.fmin(arr,arr2)  #忽略nan
np.abstract(arr,arr2)  #arr-arr2
np.add(arr,arr2)  #相加
np.divide(arr,arr2)  #除法
np.mod(arr,arr2)  #求模
np.floor_divide(arr,arr2)  #圆整除法
np.power(arr,arr2)  #arr的arr2次方
remainder, whole_part = np.modf(data2)  #remainder:小数部分组成的数组 whole:整数
np.copysign(arr,arr2)  #将arr2的符号给arr
np.abs(arr)  #绝对值
np.fabs(arr)  #非复数更快
np.square(arr)  #平方
#log log10 log2 log1p
#sign 返回正负号
#ceil 大于等于该值的最小整数
#floor 小于等于该值的最大整数
#rint 四舍五入到整数 保留类型
#isnan 哪些值非数字的布尔型数组
#isfinite 哪些值有穷的布尔型数组
#isinf 哪些值无穷的布尔型数组
#cos cosh sin sinh tan tanh 普通、双曲三角函数
#arccos arccosh arcsin arcsinh arctan arctanh 反~
#logical_not(arr) 相当于-arr
#greater、greater_equal、less、less_equal、equal、not_equal 相当于比较运算符
#logical_and、logical_or、logical_xor  相当于&、|、^

4 用于数组的文件输入输出

arr=np.arange(10)
np.save('some_array',arr)  #保存为npy的文件
np.load('some_array.npy')  #读取数组
np.savez('array_archive.npz',a=arr,b=arr)  #多个数组保存至未压缩文件 以关键字参数传入
arch=np.load('array_archive.npz')  #加载数据 类似字典
arch['b']
np.savez_compressed('array_archive.npz',a=arr,b=arr)  #数据压缩

5 处理数据

对一组值求距离x2+y2\sqrt{x^2+y^2}x2+y2​

import numpy as np
points=np.arange(-5,5,0.01)  #1000个均匀点
xs,ys=np.meshgrid(points,points)  #1000*1000的矩阵
z=np.sqrt(xs**2+ys**2)
#做图 第九章_2e
import matplotlib.pyplot as plt
plt.imshow(z,cmap=plt.cm.gray);plt.colorbar()
plt.title('Image plot of $\sqrt{x^2+x^2}$ for a grid of values')

条件逻辑→数组 where

二三参数不一定为数组 可以为标量

xarr=np.array([1,2,3,4,5])
yarr=np.array([6,7,8,9,0])
cond=np.array([True,False,True,True,False])
result=np.where(cond,xarr,yarr)  #当条件对应位子中为真返回xarr,为假返回yarrA=np.random.randn(4,4)
np.where(A>0,-2,2)
np.where(A>0,2,A)

排序

#就地排序会改变数组本身 np.sort返回副本
B[1].sort()  #只对B的第二行排序
B.sort(1)  #参数是轴 每行排序
B.sort(0)
E=np.random.randn(1000)
E.sort()
E[int(0.05*len(E))]  #5%分位数 排序后计算最简单

唯一化及其他集合逻辑

names=np.array(['Bob','A','B','Bob','C','D','E'])
np.unique(names)  #返回数组中的排序后唯一值
sorted(set(names))
test=np.array([1,2,8,9])
np.in1d(xarr,test)  #xarr是否在test里面 返回布尔型
#intersect1d(x,y)  x∩y 有序
#union1d(x,y)  x∪y 有序
#setdiff1d(x,y)  x-y
#setxor1d(x,y)  x,y的对称差(x+y)-(x∩y)

数学和统计方法

B=np.random.randn(5,4)
B.mean()
np.mean(B)
B.sum()  #sum和mean可以接受一个轴参数 结果返回少一维的数组
B.mean(axis=1)  #行的均值
B.sum(axis=0)  #列的和
C=xarr.cumsum()  #累加和
D=np.array([[1,2,3],[4,5,6],[7,8,9]])
D.cumsum(axis=0)
D.cumprod(axis=1)  #行的累计积
#std、var、min、max、argmin、argmax
#标准差、方差、最小、最大、最小的索引、最大的索引### 布尔型数组的方法
```javascript
(B>0).sum()  #B中正数数量
(B>0).any()  #是否存在多个True(一个True即返回True)
(B>0).all()  #是否都是True (一个False即返回False)
#非0元素都会被认为True

线性代数

x=np.array([[1,2,3],[4,5,6]],dtype=np.float64)
y=np.array([[6,23],[-1,7],[8,9]],dtype=np.float64)
x.dot(y)
np.dot(x,y)
x @ y  #矩阵乘法from numpy.linalg import inv, qr
X = np.random.randn(5,5)
mat=X.T.dot(X)  #内积
inv(mat)  #矩阵的逆
mat.dot(inv(mat)
q,r=qr(mat)  #计算QR分解
#diag  返回方阵对角线的一位数组 或者一位数组转为方阵对角线
#trace 对角线元素和
#det |A|计算行列式
#eig 特征值、特征向量
#pinv  Moore-Penrose广义逆
#svd 奇异值分解
#solve  解线性方程组Ax=b
#lstsq  计算Ax=b最小二乘解

伪随机数生成

sample= np.random.normal(size=(4,4))
from random import normalvariate
N=100000
%timeit sample = [normalvariate{0,1} for _ in range(N)]
%timeit np.random.normal(size=N)  #np.random更快一些
np.random.seed(1234)
rng=np.random.RandomState(1234)
rng.randn(10)
#permutation  序列的随机排列 或范围
#shuffle  序列就地随机排列
#rand  均匀分布的样本值
#randint  给定上下限范围随机选取整数
#randn  标准正态
#binomial  二项分布
#normal 正态
#beta  beta分布
#chisquare   卡方
#gamma  伽马分布
#uniform  [0,1)均匀分布

示例:随机漫步

#纯python
import random
position=0
walk=[position]
steps=10000
for i in range(steps):step=1 if rand.randint(0,1) else -1position+=stepwalk.append(position)
plt.plot(walk[:100])#numpy库
nsteps=10000
draws=np.random.randint(0,2,size=nsteps)  #生成10000个随机数
steps=np.where(draws>0,1,-1)  #有点像excel的if语句诶
walk=steps.cumsum(steps)  #累加的列表
walk.min()
walk.max()
(np.abs(walk)>=10).argmax()  #首达时位置 但argmax会对数组完全扫描 不是很高效
#多个随机漫步
nwalks=5000
nsteps=1000
draws=np.random.randint(0,2,size=(nwalks,nsteps))
steps=np.where(draws>0,1,-1)  #5000个1000步的随机漫步
walks=steps.cumsum(1)  #累加每行
walk.max()
walk.min()
hits30=(np.abs(walks)>=30).any(1)  #无论取值 首达时是会存在的
hits30.sum()  #总穿越次数
crossing_time=(np.abs(walk[hits])>30).argmax(1)
crossing_time.mean()  #但理论上这个均值等于无穷 如果我没记错的话

pandas入门

基本数据结构

import pandas as pd
from pandas import Series, DataFrame
obj=pd.Series([4,5,6,7])
obj.values
obj.index  #像字典 自动生成数字索引
obj2=pd.Series([4,5,6,7],index=['a','b','c','d'])  #制定索引
obj2.index  #数据类型为‘object’
obj2['b']
obj[obj>5]
'b' in obj2
#字典可直接创建Series 根据运算的索引标签自动对齐数据
sdata={'A':35000,'B':71000,'C':16000,'D':5000}
obj3=pd.Series(sdata)
states=['A','B','D','E']
obj4=pd.Series(sdata,index=states)  #以index为基础在数据中筛选 数据缺失返回nan
pd.isnull(obj4)  #判断缺失数据
pd.notnull(obj4)
obj4.isnull()
obj4.notnull()
#name属性(像表头?)
obj4.name='population'
obj4.index.name='state'
obj4.index=['F','G','H','I']  #索引修改
#DataFrame 表格型数据 有序的列 每列不同的值类型 有行、列索引
#二维结构保存数据但能轻松表示高维数据
data={'state':['A','A','A','B','B','B'],'year':[2000,2001,2002,2001,2002,2003],'pop':[1.5,1.7,3.6,2.4,2.9,3.2]}
frame=pd.DataFrame(data)
frame.head()  #前五行
pd.DataFrame(data,columns=['year','state','pop'])  #列以制定顺序排列 列找不到会产生缺失值
frame2=pd.DataFrame(data,columns=['year','state','pop','debt'], index=['one','two','three','four','five','six'])
frame2.columns  #获取索引(表头)
frame2['state']  #获取一列
frame2.year  #只有列名是合理的python变量才适用
frame2.loc['three']  #获取行
frame2['debt']=16.5
frame2['debt']=range(6)  #给列复制时需要与长度匹配
val=pd.Series([1,2,3],index=['one','two','three'])
frame2['debt']=val  #其余行缺失返回nan
frame2['eastern']=frame2.state=='Onio'  #创造新列 (布尔值)不能用.eastern
del frame2['eastern']pop={'A':{2001:2.4,2002:2.9},'B':{2000:1.5,2001:1.7,2002:3.6}}  #嵌套字典
frame3=pd.DataFrame(pop)  #外层键为列,内层键是行索引
frame3.T  #转置
pdata={'A':frame3['A'][:-1],'B':frame3['B'][:2]}
pd.DataFrame(pdata)
#DataFrame能接受的数据:二维ndarray,各种字典,另一个DataFrame
frame3.index.name='year';frame3.columns.name='state'### 索引对象
#轴标签 元数据
obj=pd.Series(range(3),index=['a','b','c'])
index=obj.index
index[1:]
#index[1]='d'  会报错 index对象不可变
#index方法和属性
#append 连接另一个index对象,产生新的index
#difference 计算差集
#intersection  交集
#union 并集
#isin  各值是否包含在参数集合中
#delete  删除i处的
#drop  删除传入的值
#insert  元素插入到i处
#is_monootonic   各元素均大于前一个元素时返回True
#is_unique  #没有重复值返回True
#unique  计算唯一值的数组###基本功能
obj=obj.reindex(range(3))
obj2=pd.Series(range(3))
obj2.reindex(range(6),method='ffill')  #前向填充
frame3=pd.DataFrame(np.arange(9).reshape((3,3)),index=['a','b','c'],columns=['A','B','C'])
#行列都可以再索引
#reindex的参数 index
#method填充方式   fill_value缺失值替代值  limit前后向最大填充量
#tolerance不准确匹配项的最大间距(绝对值间距)  level在multiindex制定级别匹配简单索引
#copy 为True全部复制 False新旧相等不复制
frame3.drop('a')
frame3.drop('A',axis=1)  #不会返回新对象#索引同np基本相同
obj3['A']  #用标签切片末端是包含的
obj3[0]
obj3[[1,3]]
obj3[obj3<20000]
frame2[['year','state']]  #DataFrame索引是获取列
frame2.loc['two',['year','state']]  #loc通过标签函数一行多列
frame2.iloc[2,[3,0,1]]  #iloc通过整数进行索引[index,columns] 也可用于切片
frame3.iloc[:,:2][frame3.B>3]  #frame2使劲给我报错嘿
frame2.at['two','year']  #[行,列]标签选取单一值
frame2.iat[1,0]  #[行,列]数字选取但一值
#get_value set_value  标签选取单一值
ser=pd.Series(np.arange(3.))
#ser[-1]负数索引会报错 轴索引含有整数 数据 选取总会使用标签
ser2=pd.Series(np.arange(3.),index=['a','b','c'])
#ser[-1]会报错  #最好使用loc和iloc

算术运算和数据对齐

obj2+ser  #按index相加 否则返回nan
#dataframe同样 只有交集会进行运算``
df1=pd.DataFrame(np.arange(12).reshape((3,4)),columns=list('abcd'))
df2=pd.DataFrame(np.arange(20).reshape((4,5)),columns=list('abcde'))
df1+df2
df1.add(df2,fill_value=0)  #nan填充为0
1/df1
df1.rdiv(1)  #在函数前加r会反转参数
#sub rsub  -
#floordiv,rfloordiv  //
#mul rmul  *
#pow   rpow  **
df1.reindex(columns=df2.columns,fill_value=0)
series=df1.iloc[0]
df1-series  #dataframe与series之间的运算 会broadcasting 按列进行匹配
series2=df1['b']
df1-series2
df1.sub(series2,axis='index')  #按列进行匹配

函数应用和映射

A=pd.DataFrame(np.random.randn(4,3),columns=list('bde'))
np.abs(A)
f=lambda x:x.max()-x.min()
A.apply(f)  #apply将函数应用到各行/列组成的一维数组上 各列算了一次
A.apply(f,axis='columns')  #各行算一次
def f(x):return pd.Series([x.min(),x.max()],index=['min','max'])
A.apply(f)
format=lambda x:'%.2f'% x
A.applymap(format)  #格式化字符串
A['e'].map(format)  #series应用于元素级的map方法

排序、排名

B=pd.DataFrame(np.random.randn(4,3),index=[3,2,1,0],columns=list('ebd'))
B.sort_index()    #对行排序 默认升序
B.sort_index(axis=1)  #对列排序
B.sort_index(axis=1, ascending=False)  #降序
B['e'].sort_values()  #按值排序 缺失会放在末尾
B.sort_values(by='e')   #按某一列来排序 多个则改为列表
obj2.rank()  #为各组分配一个平均排名 默认
obj2.rank(method='first')  #原始数据出现顺序
#method参数 min max dense
obj2.index.is_unique  #index是否唯一 不唯一时选取为series

汇总、计算、描述统计

A.sum()  #按列求和
A.sum(axis=1)  #按行求和
#参数 skipna 排除缺失值 默认为True; level层次化索引的轴
A.idxmax()
A.idxmin()  #返回索引值
#argmax argmin  返回索引位置
A.cumsum()
A.describe()  #描述性统计
C=pd.Series(states*4)
C.describe()  #文本型描述统计
#quantile分位数  median中位数 mad绝对离差
#sum mean var std skew kurt cummin cummax cumprod
#diff一阶差分 pct_change百分数变化#相关系数 协方差
import pandas_datareader.data as web
all_data={ticker:web.get_data_yahoo(ticker) for ticker in ['AAPL','IBM','MSFT','GOOG']}
price=pd.DataFrame({ticker:data['Adj Close'] for ticker,data in all_data.items()})  #调整收盘价
volume=pd.DataFrame({ticker:data['Volume'] for ticker,data in all_data.items()})  #市值
returns=price.pct_change()  #收益率
returns.tail()
returns['MSFT'].corr(returns['IBM'])  #相关系数
returns['MSFT'].cov(returns['IBM'])  #协方差
returns.corrwith(returns.IBM)
returns.corrwith(volume)
#数据读取 csv、table 就是“\t”分割、clipboard剪贴板、excel、hdf、html、json、sas、sql、stata
df=pd.read_csv('example1.csv')
df=pd.read_table('example1.csv',sep=',')
df=pd.read_csv('example1.csv',header=None)names=['z','x','c','v','b','n','m']
df=pd.read_csv('example1.csv',names=names,index_col='b')  #新生成一个list作为表头,并且规定index列df=pd.read_csv('C:\\Users\\pro3\\Desktop\\example1.csv',index_col=['key1','key2'])  #是面板有两个indexdf=pd.read_table('example1.txt',sep='\s+')  #可以去掉多余符号
df=pd.read_csv('example1.csv',skiprows=[0,2,3])  #去掉其中几行sentinels={'message':['foo','NA'],'key2':'b'}
df=pd.read_csv('C:\\Users\\pro3\\Desktop\\example1.csv',na_values=sentinels)  #使得sentinels中某列的某值为空
#逐块读取
pd.options.display.max_rows=10  #只显示10行
pd.read_csv('example1.csv',nrows=5)     #控制行数
chunker=pd.read_csv('example1.csv',chunksize=1000)
chunker
tot=pd.Series([])
for piece in chunker:tot=tot.add(piece['key'].value_countss(),fill_value=0)
tot[:10]   #没看懂
#导出
df.to_csv('example2.csv')
#读excel
xlsx=pd.ExcelFile('example1.xlsx')
pd.read_excel(xlsx,'sheet1')
frame=pd.read_excel('example1.xlsx','sheet1')
#写excel
writer=pd.ExcelWriter('example2.xlsx')
frame.to_excel(writer,'sheet1')
writer.save()
frame.to_excel('example2.xlsx')
import sys
df.to_csv(sys.stdout,sep='|')  #规定间隔是‘|’
df.to_csv(sys.stdout,na_rep='NULL')  #缺失值为NULL
df.to_csv(sys.stdout,index=False,header=False)
df.to_csv(sys.stdout,index=False,columns=['d','c','b','a'])  #规定列的顺序
#series导出
dates=pd.date_range('1/1/2000',periods=7)
ts=pd.Series(np.arange(7),index=dates)
ts.to_csv('example3.csv')  #web APIs交互
import requests
resp=requests.get('url')  #读网址 返回json字典
data=resp.json()
issues=pd.DataFrame(data,columns=[])
#读json
obj='''
……
'''  #就是json的格式啦
import json
result = json.loads(obj)  #转为python形式
asjson=json.dumps(result)data=pd.read_json('example1.json')  #自动转为series或者dataframe
#读hdf5
frame=pd.DataFrame({'A':np.random.randn(100)})  #生成一列随机100个
store=pd.HDFStore('mydata.h5')
store['0bj1']=frame  #存到上面的文件里
store.put('obj2',frame,format='table')  #put相当于 store['obj2']=frame
store.select('obj2',where=['index>=10 and index <= 15'])
frame.to_hdf('mydata.h5','obj3',format='table')  #保存?
pd.read_hdf('mydata.h5','obj3',where=['index<5'])#数据库交互
import sqlite3  #mysql是pymssql
query='''
CREATE TABLE test
(a varchar(20)), b varchar(20),
c REAL, d INTEGER
);'''  #数据库查询语言记入query 生成abcd四列
con=sqlite3.connect('mydata.sqlite')  #这个没看懂
con.execute(query)  #执行
con.commit  #生成table结束
data=[]  #不想敲了
stmt='INSERT INTO test VALUES(?,?,?,?)'
con.executemany(stmt,data)  #这个也没看懂 将data写入到test里面
cursor=con.execute('select * from test')  #test表里所有数据
rows=cursor.fetchall()  #拿出来所有,返回list
cursor.description  #返回表头?
pd.DataFrame(rows,columns=[x[0] for x in cursor.description ])
#轻松查数据库
import sqlalchemy as sqla
db=sqla.create_engine('sqlite:///mydata.sqlite')  #没看懂
pd.read_sql('select * from test',db)

python学习笔记(Data Analysis)相关推荐

  1. 2016April Python学习笔记(pandasecharts)

    2016April Python学习笔记 Git学习 git(/ɡɪt/,关于这个音频文件 音频(帮助·信息))是一个分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)创作,于2 ...

  2. python 学习笔记 12 -- 写一个脚本获取城市天气信息

    近期在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么可以显示后最重要的就是显示什么的问题了. 最easy想到的就是显示时间啊,CPU利用率啊.IP地址之类的.那么我认为呢,假设可以显示当 ...

  3. Python学习笔记:Day 12 编写日志列表页

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此, 写下这些 ...

  4. Python学习笔记:Day11 编写日志创建页

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  5. Python学习笔记:Day 10 用户注册和登陆

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  6. Python学习笔记:Day5 编写web框架

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. Python学习笔记:web开发1

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  8. Python学习笔记:网络编程

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  9. Python学习笔记:第三方模块2

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  10. Python学习笔记:常用第三方模块(1)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

最新文章

  1. 读入自然数m、n,判断m/n是有限小数还是循环小数
  2. 基本操作1-本地仓库连接远程仓库
  3. 二叉树节点为某一值的路径
  4. Oracle性能优化3-sql优化一定要等价
  5. 获取PowerShell某个对象的所有命令
  6. 白鹭发布html5,白鹭Egret Engine 1.5发布 HTML5性能大幅提升
  7. 使用BoobSnail生成任意Excel 4.0 XLM宏文件
  8. 专题开发十三:JEECG微云高速开发平台-附录
  9. 解决ERROR:Local variable count defined in an enclosing scope must be final or effectively final
  10. 初学java者写家庭收支账本
  11. Windows Media Player Network Sharing Service 启动失败
  12. Idea中文件图标发生变化,导致文件显示出现异常
  13. [苹果开发者账号]03 申请APPID、苹果开发者账号 常见问题整理
  14. Fine-Gray检验、竞争风险模型、列线图绘制
  15. 最全的正则表达式大全,手机号、邮箱等等
  16. 传统分割方法汇总(包括SLIC、Ncut、watershed、graph-based segmentation、Meanshit、最大熵分割)
  17. yolov1-v3学习报告
  18. 微信小程序 错误记录
  19. 计算机桌面刷新位置不可用,电脑桌面打开图片提示位于不可用的位置怎么办
  20. AI孙燕姿爆火,华语乐坛重温旧梦

热门文章

  1. 中国石油大学《政治学原理》第二次在线作业
  2. 华为计算机技能,华为笔记本电脑技术参数及功能一览
  3. 中国大数据行业人才生态现状
  4. 冲量在线当选中关村数字经济产业联盟理事单位
  5. 计算机配置好坏怎么看,电脑配置怎么看 史上最全的查看电脑配置好坏方法
  6. 汶川大地震祭(新京报【逝者特刊】卷首语)——转载
  7. PPTP配置实例(HiPER ReOS 2008 ×××配置手册)
  8. 使用uniapp开发社区交友网站的项目教程
  9. 模型、数据分布稳定性
  10. 【怀旧】80后,难忘童年----100部最经典的电视连续剧