2024年1月26日发(作者:)
python入门基础代码
#查找index函数的帮助
help()
#for循环和break语句
from math import sqrt
for i in range(2,101):
flag=1
k=int(sqrt(i))
for j in range(2,k 1):
if i%j==0:
flag=0
break
if(flag):
print i
#continue语句,满足条件跳出continue后面的语句
sumA=0
i=1
while i<=5:
sumA =i
i =1
if i==3:
continue
print 'i=%d,sum=%d'%(i,sumA)
#循环中的else语句
k=5
for i in range(1,10):
if k==3:
break
else:
print i
#自定义函数/素材1-100间素数
from math import sqrt
def isprime(x):
if x==1:
return False
k=int(sqrt(x))
for j in range(2,k 1):
if x%j==0:
return False
return True
for i in range(2,101):
if isprime(i):
print idef f(x,y=True): #默认参数要放在参数列表的最后
'x and y both correct words or not'
if y:
print x,'and y both correct'
print x,'is Ok'
f(68)
f(68,False)
#传递函数
def addme2me(x):
return(x x)
def self(f,y):
print f(y)
self(addme2me,2.2)
#lambda函数
my_add=lambda x,y:x y
my_add(5,6)
#数据获取与表示
f=open(r'E:','w') #新建一个文件
('hello,world') #f为对象,write写入文件
()
f=open(r'E:','r') #r代表读出
p1=(5) #5代表读出的字节数
p2=()
print p1,p2
f1=open(r'E:')
cname=nes()
for i in range(0,len(cname)):
cname[i]=str(i 1) '' cname[i]
f2=open(r'E:','w')
ines(cname)
()
#网络数据获取
import urllib
r=n('/')
html=
#序列
#标准类型运算符
'apple'<'banana'
[1,2,3]!=[4,5,6]#值比较
atuple=('ba',126.4)
btuple=atuple
btuple is not atuple#对象身份比较
('86.40'<'122.64') and ('apple'<'banana')#布尔运算
#序列类型运算符
week=['mondy','tuesday','wednesday','thursday','firday','satuday','sunday']
print week[1],week[-2],'n',week[1:4],'n',week[:6],'n',week[::-1]#序列值的序号是从0开始到N-1或者从-1到N
'apple'*3
'ba' in ('ba','the boeingcompany')
#序列类型转换工厂函数
list('hello,world')#将字符串转成列表
tuple('hello,world')#将字符串转成元组#字符串
s1='''hello
'a'
''b''
world!'''
s1 #三引号可以保持里面字符串的原貌
s2=r'd:'
s2
ccode=['axp','ba','cat','csco','cvx']
cprice=['86.40','122.64','99.44','23.78','115.91']
for i in range(5):
print '%d%8s:%8s' %(i,ccode[i],cprice[i]) #%8s指的占8个字符
print 'i get %d%%!' %32 #两个%%会留下一个
astr='what do you think of this saying 'no pain,no gain'?'
tempstr=(''')[1] #'为转义字符
if e():
print 'it is title format'
else:
print 'it is not title format'
print ()astr='101tx41n'#八进制数000代表的字符 t代表横向制表符
print astr#列表
jscores=[9,9,8.5,10,7,8,8,9,8,10]
ascore=9
()
() #去掉最高分
(0) #去掉最低分
(ascore) #合并
avescore=sum(jscores)/len(jscores)
avescoreweek=['monday','tuesday','wednesday','thursday','firday']
weekend=['saturday','sunday']
(weekend)#extend合并函数
for i,j in enumerate(week):#enumerate函数 产生从0开始的序列
print i 1,jnumlist=[3,11,5,8,16,1]
(reverse=True) #按逆序排列
numlist
fruitlist=['apple','banana','pear','lemon','avocado']
(key=len)
fruitlist #按字符长度排序
#列表解析
[x**2 for x in range(10)]
[x**2 for x in range(10) if x**2<50]
[(x 1,y 1) for x in range(2) for y in range(2)]
#元组
atruple=(1,2,3)
atruple
atruple[1:]
len(atruple)
btruple=(['monday',1],2,3)
btruple[0][1]
2014, #创建元组2014
alist=['axp','ba','cat']
atruple=('axp','ba','cat')
alist[1]='alibaba'
atruple[1]='alibaba'#元组是不可变的,列表是可变的
alist=[3,5,2,4]
() #改变原来列表
alist
alist=[3,5,2,4]
sorted(alist) #sorted只是新生成一个列表的副本,原来的列表并没有改变
alist
#但元组就只能使用sorted,不能用sort,因为不能改变元组
atruple=(3,5,2,4)
#会报错
def func(args1,args2='world'):#元组作为函数形式的参数
print args1,args2
func('hello',)
func(args2='apple',args1='hello')
def func(args1,*args):
print args1
print args
func('hello,','wangdachui','liuyuan','linlin')
#返回值类型为元组的函数enumerate()、coerce()
#字典
ainfo={'wangdachui':3000,'niuyun':2000,'linlin':3000} #直接创建字典
info=[('wangdachui',3000),('niuyun',2000),('linlin',3000)]
binfo=dict(info) #利用dict函数创建字典
cinfo=dict([['wangdachui',3000],['niuyun',2000],['linlin',3000]])
dinfo=dict(wangdachui=3000,niuyun=2000,linlin=3000)
adict={}.fromkeys(('wangdachui','niuyun','linlin'),3000)
#fromkeys函数将所有的keys初始值设置为3000
adict
plist=[('axp','american express','86.40'),('ba','the boeing
company','122.64'),('cat','caterpillar inc.','99.44')]
alist[]
blist[]
for i in range(2):
astr=plist[i][0]
bstr=plist[i][2]
(astr)
(bstr)
adict=dict(zip(alist,blist)) #zip函数
#字典的使用
#字典的基本操作
ainfo={'wangdachui':3000,'niuyun':2000,'linglin':4500,'tianqi':8000}
ainfo['niuyun'] #键值查找
ainfo['niuyun']=9999#更新
ainfo
ainfo['funyun']=1000#查找
'mayun' in ainfo #成员判断
del ainfo #删除字典
ainfo={'wangdachui':3000,'niuyun':2000,'linglin':4500,'tianqi':8000}
for key in ():
print 'name=%s,salary=%s' %(key,ainfo[key])
'niuyun's salary is %(niuyun)s.' %ainfo #%(key) 格式说明符 %字典对象名
ainfo={'wangdachui':3000,'niuyun':2000,'linglin':4500,'tianqi':8000}
()
()
ainfo={'wangdachui':3000,'niuyun':2000,'linglin':4500,'tianqi':8000}
binfo={'wangdachui':3000,'niuyun':9999,'linglin':4500,'wangz
i':8000}
(binfo)#update函数 快速更改
ainfo
astock={'axp':86.4,'ba':122.64}
bstock=astock
astock={} #此时只会讲astock清空,不会将bstock清空,需要用clear函数才会将关联的都删除
bstock
()
bstock
#字典作为函数的形式参数
def func(args1,*argst,**argsd): #一个*是可变长位置参数,**可变长关键字参数
print args1
print argst
argsdfunc('hello','wangdachui','niuyun','linglin',a1=1,a2=2,a3=3)
#集合
names=['wangdachui','niuyun','wangzi','wangdachui','lingling','niuyun']
namesset=set(names) #set删除重复对象,因为集合的元素
都不重复
namesset
aset=set('hello')
aset
fset=frozenset('hello')
fset
#集合比较
aset=set('sunrise')
bset=set('sunset')
'u' in aset
aset==bset
set('sun')
aset&bset #集合关系运算
aset|bset
aset-bset
aset^bset #不能同时属于两个集合
aset-=set('sun') #运算符可复合
#集合内建函数
aset=set('sunrise')
bset=set('sunset')
et(bset) #是否为子集
ection(bset) #交集
ence(bset)#差补
cset=() #拷贝
#面向可变集合的函数
aset=set('sunrise')
('!')
aset
('yeah')
('!')
()
#扩展库scipy
import numpy as np
xarray=((3,4)) #生产3*4的全部为1的矩阵
xarry
from scipy import linalg
arr=([[1,2],[3,4]])
(arr)
#ndarry
from numpy import *
aarray=array([1,2,3])
aarray
barray=array([(1,2,3),(4,5,6)])
barray
zeros((2,2))
arange(1,5,0.5)
aarray=array([(1,2,3),(4,5,6)])
sin(aarray)
#数组的维度
barray=e(3,2)
barray
()
(axis=0) #通过设置参数,分别行、列求和
(axis=1)
carray=array([1,3,5])
carray[:1] #切片功能
darray=array([2,4,6])
earray=array([7,8,9])
where(carray>2,darray,earray) #where函数
def fun(x,y):
return (x 1)*(y 1)
arr=fromfunction(fun,(9,9)) #fromfunction函数
arr
#ufunc函数能对数组中每个元素进行操作,包括add等函数
import numpy as np
a=(1,5)
b=(2,6)
(a,b)
late([2,3,8])
late([2,3,8])
#series
#series 类似于一维数组的对象,由数据和索引组成
from pandas import Series
import pandas as pd
aser=([1,2.0,'a'])
bser=(['apple','peach','lemon'],index=[1,2,3])
aser['a']
import numpy as np
(aser)
#series数据对齐
data={'axp':'86','csco':'122','ba':'94'}
sindex=['axp','csco','aapl']
aser=(data,index=sindex)
aser
(aser)
#series的name属性
='cnames'
='volume'
aser
#dataframe表结构
#大致可以看成共享一个index的series的集合
data={'name':['wangdachui','linlin','niuyun'],'pay':[4000,5000,6000]}
frame=ame(data)
frame['name']
[2] #索引所对应的数据
#dataframe对象的修改和删除
frame['name']='admin' #对name下的所有元素进行更改
del frame['pay']
frame
='no'
#便捷数据获取
#便捷网络数据 雅虎财经
from e import quotes_historical_yahoo
from datetime import date
import pandas as pd
today=()
start=(-1,,)
quotes=quotes_historical_yahoo('AXP',start,today)
df=ame(quotes)
print df
#自然语言工具包NLTK
from import gutenberg
import nltk
print s()
#数据准备
from e import quotes_historical_yahoo
from datetime import date
import pandas as pd
today=()
start=(-1,,)
quotes=quotes_historical_yahoo('AXP',start,today)
fields=['date','open','close','high','low','volume']
quotesdf=ame(quotes,columns=fields) #通过columns数据加属性名
quotesdf=ame(quotes,index=range(1,len(quotes)
1,columns=fields)
print quotesdf
from datetime import date
from datetime import datetime
y=me(x,'%Y-%m-%d') #将日期转换成固定格式
import pandas as pd
dates=_range('20141001',periods=7) #自己创建时间序列
dates
#数据显示
s
be#显示数据描述
(5)#显示前五行数据
(5)
#数据选择
quotesdf[u'2013-12-02':u'2013-12-06'] #dataframe可以使用索引选择
djidf['code']
[1:5,] #通过loc通过标签选择数据,第一个参数是行标签,第二个参数是列标签
[:,['code','lasttrade']] #前面这个:需要
[1:6,[0,2]] #通过的行位置,列位置选择标签
quotesdf[>=u'2014-01-01']
quotesdf[(>=u'2014-01-01')&(>=95)]#条件筛选
#简单统计预处理
(columns='lasttrade')#最近一次成交价的平均值
djidf[ade>=120].name#最近一次成交价大于等于120的公司名
len(quotesdf[>]) #股票涨的天数
len(quotesdf)-131
status=(()) #相邻两天数据的差
status[(status==1.)].size
(columns='lasttrade')[27:].name#排序结果列出前三甲的公司名 ,一共是30条记录,所以是[27:]
t=quotesdf[(>=u'2014-01-01')&(
len(t) #统计2014年1月份的股票开盘天数
#分组
y('month').count().month #每个月的股票开盘天数
y('month').sum().volume #每个月的股票总成
交量
g=y('month')
gvolume=g['volume']
print ()
#合并
#append追加 纵向
p=quotesdf[:2]
q=quotesdf[u'2014-01-01':u'2014-01-05']
(q)
#concat连接
pieces=[tempdf[:5],tempdf[len(tempdf)-4:]]
(pieces)
#两个不同逻辑结构的对象能否连接 纵向
piece1=quotesdf[:3]
piece2=tempdf[:3]
([piece1,piece2],ignore_index=True)
#join连接 横向
(djidf,akdf,on='code')
.(djidf,akdf,on='code').drop(['lasttrade'],axis=1)
#聚类分析
from pylab import *
from import *
list1=[88,74,96,85]
list2=[92,99,95,94]
list3=[91,87,99,95]
list4=[78,99,97,81]
list5=[88,78,98,84]
list6=[100,95,100,92]
data=vstack((list1,list2,list3,list4,list5,list6))
centroids,_=kmeans(data,2)
result,_=vq(data,centroids)
print result
本文发布于:2024-01-26 09:04:35,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/1706231075827.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |