解决方案

python使用手册

seo靠我 2023-09-25 08:54:23

Python

简介

Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL (GNU General Public License)协议。Python语法简洁清晰,特色之一是强制用空白符SEO靠我(white space)作为语句缩进。

Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用PythoSEO靠我n快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的SEO靠我扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

7月20日,IEEE发布2017年编程语言排行榜:Python高居首位 2() 。

2018年3月,该语言作者在SEO靠我邮件列表上宣布 Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。

目录

区分

运算符优先级

引号使用

数字类型转换SEO靠我

数学函数

随机函数

三角函数

字符串

列表

元组

字典

集合

条件控制语句

自定义函数

模块

文件

目录

异常处理

属性

数组维度变换

数组的类型转换

数组的索引和切片

随机数函数

统计函数

画图

导入

导出

创建对象

查看/检查数据

数据选取

数据SEO靠我清洗

区分

名称结构列表[physics, chemistry, 1997, 2000]元组(physics, chemistry, 1997, 2000)字典{a: 1, b: 2, b: 3}

运算符优SEO靠我先级

运算符描述**指数 (最高优先级)~ + -按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)* / % //乘,除,取模和取整除+ -加法减法>> <<右移,左移运算符&位 ANSEO靠我D^ |位运算符<= < > >=比较运算符<> == !=等于运算符= %= /= //= -= += *= **=赋值运算符is is not身份运算符in not in成员运算符not or aSEO靠我nd逻辑运算符

引号使用

单引,双引 :保留原样

三引号: 多行字符串

数字类型转换

int(x) 转为整数

float(x)转为浮点

complex(x)转为复数 实数为x ,虚数为0

complex(x,y)转为SEO靠我复数 实数为x ,虚数为y

>>>complex(x,y) (3+5j)

数学函数

abs()

返回绝对值数值

>>>abs(-2) 2

ceil()

上入整

>>>math.ceilSEO靠我(2.2) 3

floor()

下入整

>>>math.floor(2.6) 2

log()

对数,e为底

import math >>>math.log(100,SEO靠我10) 2.0

max(val,val,val)

字符串中找出ASCII码中最大的

>>>max("happy") y

mix(val,val,val)

最小数

>>>min([2SEO靠我,5,77,1,3,51]) 1

round(float,[n])

四舍五入保留n位小数

>>>round(3.1415926,2) 3.14

sqrt(val)

返回平方根,vSEO靠我al不能为负数

>>>math.sqrt(81) 9.0

随机函数

choice(seq)

import random #只能有序序列 random.choicSEO靠我e(range(10))

randrange([start,] stop[,step])

random.randrange(100) #开始,结束,步长 random.raSEO靠我ndrange(0,100,2)

random()

#生成0-1之间的实数 random.random()

seed([])

random.seed(123)

shuffle()

#随机排序 SEO靠我 lst=[1,2,3,4,5] random.shuffle(lst)

uniform(x,y)

#生成实数 random.uniform(1,100)

三角函数SEO靠我

sin(x)

x弧度的正弦值 #30°正弦值 import math math.sin(math.pi/6)

cos(x)

x弧度的余弦值 #SEO靠我90°余弦值 import math math.sin(math.pi/2)

tan(x)

x弧度的正切值 #45°正切值 import mSEO靠我ath math.tan(math.pi/4)

asin(x)

x的反正弦弧度值 #0.5反正弦弧度值 import math math.aSEO靠我sin(0.5)

acos(x)

x的反余弦弧度值

atan(x)

x的反正切弧度值

hypot(x,y)

欧几里德范数 import math #勾三股四玄五 mSEO靠我ath.hypot(3,4)

degrees(x)

将弧度转换为角度

radians(x)

将角度转换为弧度

字符串

截取

var1 = "Python Runoob" print(var1[1:5SEO靠我])

转义字符

转义字符描述\ (在行尾时)续行符\ \反斜杠符号\单引号\"双引号\a响铃\b退格(Backspace)\e转义\000空\n换行\v纵向制表符\t横向制表符\r回车\f换页\oyy八进SEO靠我制数,yy代表的字符,例如:\o12代表换行\xyy十六进制数,yy代表的字符,例如:\x0a代表换行\other其它的字符以普通格式输出

逻辑运算符

运算符表达式描述实例andx and y与:x为 0SEO靠我false 返回 x 反之 y8 and 9 返回 9orx or y或:x 为 0或 false 返回 y 反之 x8 and 9 返回 8notnot x非:x 为 0或 false 返回 True 反之 Falsenot 0SEO靠我 返回 True

成员运算符

运算符描述实例in在内 如果找到值 返回 True 否则返回 false"a" in "abc" 返回Truenot in不在内如果找到值 返回Ture 否则false1 noSEO靠我t in [2,3] 返回True

身份运算符

运算符描述实例is引用一个对象 返回 True 否则返回 false"a" is"a" 返回Trueis not不是引用一个对象返回Ture 否则false1SEO靠我 not in 2 返回True

函数

format()

#按位填充 "a{}cd{}f1{}345{}7".format("b","e",2,6)

isalnum()

#判断至少有一个数字 SEO靠我 "Python Runoob".isalnum() >>>False

isalpha()

#判断至少有一个字符串 "Python Runoob".isalphSEO靠我a() >>>True

isdigit()

#判断全是数字 "123".isdigit() >>>True

lower()

#大转小 "SKHGSEO靠我JSDOHG".lower() >>>skhgjsdohg

upper()

#小转大 "skhgjsdohg".upper() >>>SKHGJSDOHG

mSEO靠我ax(str)

#最大的字母 max("ABCDEFG") >>>G

min(str)

#最小的字母 max("ABCDEFG") >>>A

cSEO靠我ount(str,beg,end)

#返回出现次数 beg开始位,end结束位 "skhgjsdohg".count("s",0,3) >>>1 "skhSEO靠我gjsdohg".count("s",0,6) >>>2

find

#返回索引值 否则返回-1 beg开始位,end结束位 "skhgjsdohg".find("h",0,SEO靠我3) >>>2

join(seq)

#选择字符串作为分隔符 "%".join(["a","b","c","d"]) >>>a%b%c%d

len(str)

#字SEO靠我符串长度 len("skhgjsdohg") >>>10

replace()

#替换字符串 "skhgjsdohg".replace("s","S") SEO靠我 >>>SkhgjSdohg

split(str,num,count)

#根据字符串截取数组 "skh gjsd ohg".split(" ") >>>[skh,SEO靠我 gjsd, ohg]

strip([chars])

#删除首尾空格,或chars指定首尾字符 " skh gjsd ohg ".strip(" ") >>>skh gjsSEO靠我d ohg "skh gjsd ohg".strip("s") >>>kh gjsd ohg方法描述string.capitalize()把字符串的第一个字符大写strSEO靠我ing.center(width)返回一个原字符串居中,并使用空格填充至长度 width 的新字符串string.count(str, beg=0, end=len(string))返回 str 在 SEO靠我string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数string.decode(encoding=UTF-8, errors=strict)以 encodSEO靠我ing 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除非 errors 指 定 的 是 ignore 或 者replacestring.encode(eSEO靠我ncoding=UTF-8, errors=strict)以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是ignorSEO靠我e或者replacestring.endswith(obj, beg=0, end=len(string))检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obSEO靠我j 结束,如果是,返回 True,否则返回 False.string.expandtabs(tabsize=8)把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。stSEO靠我ring.find(str, beg=0, end=len(string))检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的SEO靠我索引值,否则返回-1string.format()格式化字符串string.index(str, beg=0, end=len(string))跟find()方法一样,只不过如果str不在 strinSEO靠我g中会报一个异常.string.isalnum()如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 Falsestring.isalpha()如果 string SEO靠我至少有一个字符并且所有字符都是字母则返回 True,否则返回 Falsestring.isdecimal()如果 string 只包含十进制数字则返回 True 否则返回 False.string.iSEO靠我sdigit()如果 string 只包含数字则返回 True 否则返回 False.string.islower()如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字SEO靠我符都是小写,则返回 True,否则返回 Falsestring.isnumeric()如果 string 中只包含数字字符,则返回 True,否则返回 Falsestring.isspace()如果 SEO靠我string 中只包含空格,则返回 True,否则返回 False.string.istitle()如果 string 是标题化的(见 title())则返回 True,否则返回 FalsestrinSEO靠我g.isupper()如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 Falsestring.join(seq)以 strinSEO靠我g 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串string.ljust(width)返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串string.loSEO靠我wer()转换 string 中所有大写字符为小写.string.lstrip()截掉 string 左边的空格string.maketrans(intab, outtab])maketrans() SEO靠我方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。max(str)返回字符串 str 中最大的字母。min(SEO靠我str)返回字符串 str 中最小的字母。string.partition(str)有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成SEO靠我 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.sSEO靠我tring.replace(str1, str2, num=string.count(str1))把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.stSEO靠我ring.rfind(str, beg=0,end=len(string) )类似于 find()函数,不过是从右边开始查找.string.rindex( str, beg=0,end=len(strSEO靠我ing))类似于 index(),不过是从右边开始.string.rjust(width)返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串string.rpartition(strSEO靠我)类似于 partition()函数,不过是从右边开始查找.string.rstrip()删除 string 字符串末尾的空格.string.split(str="", num=string.counSEO靠我t(str))以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串[string.splitlines(keepends])按照行(\r, \r\n, \n)分隔SEO靠我,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。string.startswith(obj, beg=0,end=len(sSEO靠我tring))检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.string.strip([obj])在 string 上SEO靠我执行 lstrip()和 rstrip()string.swapcase()翻转 string 中的大小写string.title()返回"标题化"的 string,就是说所有单词都是以大写开始,其余SEO靠我字母均为小写(见 istitle())string.translate(str, del="")根据 str 给出的表(包含 256 个字符)转换 string 的字符,要过滤掉的字符放到 del 参SEO靠我数中string.upper()转换 string 中的小写字母为大写string.zfill(width)返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0string.iSEO靠我sdecimal()isdecimal()方法检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。

列表

len(obj)

#列表值个数 len([1,2,3]) SEO靠我 >>>3

max(obj)

#最大值 max([1,2,3]) >>>3

min(obj)

#最小值 min([1,2,3]) >>>1

lSEO靠我ist()

#元组转换为列表 list((1,2,3)) >>>[1,2,3] list("abc") >>>[a,b,c]

append(SEO靠我obj)

#追加列表元素 lst = [1,2,3] lst.append(4) lst >>>[1, 2, 3, 4] SEO靠我----------------------------------- lst = [1,2,3] lst.append([4,5]) lst SEO靠我 >>>[1, 2, 3, [4, 5]]

count(obj)

#元素在列表中出现的次数 lst = [1,2,3,1] lst.count(1) SEO靠我>>>2

extend(seq)

#追加列表 olst = [1,2,3] nlst = [4,5] olst.extend(nlst) oSEO靠我lst >>>[1, 2, 3, 4, 5]

index(obj)

#元素在列表中第一次出现的位置 lst = [1,2,3,1] lst.index(1)SEO靠我 >>>0

insert(index,obj)

#列表中插入元素 lst = [1,2,3] lst.insert(1,1.5) lst SEO靠我 >>>[1, 1.5, 2, 3]

pop(obj=list[-1])

#列表中移除一个指定元素,默认值是最后一个 lst = [1,2,3,4,5,6] lSEO靠我st.pop(0) lst >>>[2, 3, 4, 5, 6]

remove(obj)

#移除某个元素第一次出现的位置 lst = [1,1,2,3,4,SEO靠我5,6] lst.remove(1) lst >>>[1, 2, 3, 4, 5, 6]

reverse()

#翻转 lst = [1,1,SEO靠我2,3,4,5,6] lst.reverse() lst >>>[6, 5, 4, 3, 2, 1, 1]

sort([func])

#升序 SEO靠我 lst = [3,6,2,9,6,7,0,9] lst.sort() lst >>>[0, 2, 3, 6, 6, 7, 9, 9] SEO靠我-------------------------------------- #降序 lst = [3,6,2,9,6,7,0,9] lst.sort(SEO靠我reverse=True) lst >>>[9, 9, 7, 6, 6, 3, 2, 0]

clear()

#清空列表 lst = [3,6,2,9,6,7SEO靠我,0,9] lst.clear() lst >>>[]

copy()

#勤拷贝,地址不同,不修改原列表值 olst = [3,6,2,9,6SEO靠我,7,0,9] nlst = olist.copy()

增删改查

#查 list1 = [physics, chemistry, 1997, 2000] lSEO靠我ist2 = [1, 2, 3, 4, 5, 6, 7 ]----------------------------------------------- print "list1[0]SEO靠我: ", list1[0] print "list2[1:5]: ", list2[1:5] ​ #增 list = []       SEO靠我   ## 空列表 list.append(Google)   ## 使用 append() 添加元素 list.append(Runoob) ----SEO靠我--------------------------------------------- print list [Google, Runoob] ​ SEO靠我 #删 list1 = [physics, chemistry, 1997, 2000] --------------------------------SEO靠我----------------- print list1 del list1[2] print "After deleting value at inSEO靠我dex 2 : " print list1

元组

字典

add

staff = {name:bob,age:25} staff[sex] = m staff SEO靠我 >>>{age: 25, name: bob, sex: m}

del

staff = {name:bob,age:25} del staff[age] stSEO靠我aff >>>{name: bob}

update

staff = {name:bob,age:25} staff[age]=1 staff SEO靠我 >>>{age: 1, name: bob}

select

staff = {name:bob,age:25} staff[age] >>>25

clear

staff = SEO靠我{name:bob,age:25} staff.clear() staff >>>{}

delete

staff = {name:bob,age:25} SEO靠我 del staff

json

#转换成json和字符串 import json staff = {name:bob,age:25} json.SEO靠我dumps(staff) >>>{"name": "bob", "age": 25} -----------------------------------------SEO靠我 json.loads(staff) >>>{age: 25, name: bob}

dict.copy()

#潜复制 staff = {name:bob,SEO靠我age:25} staff.copy() staffcopy = staff.copy() id(staff),id(staffcopy) SEO靠我 >>>(92578008, 92506656)

dict.fromkeys(seq,val)

#创建字典,以seq元素作为键名,val作为键值 dict.fromkeys(range(SEO靠我10),1)

dict.get()

#键名寻找键值,不存在返回default值 staff = {name:bob,age:25} staff.get("sex","nonSEO靠我e") >>>none

dict.items()

#返回可遍历的元组数组 staff = {name:bob,age:25} for k,v in stafSEO靠我f.items():print(k,v) >>>name bobage 25

key in dict

#找键名返回True,不存在返回False staff = {nameSEO靠我:bob,age:25} "sex"in staff >>>False

dict.keys()

#返回所有键名 staff = {name:bob,age:SEO靠我25} staff.keys() >>>dict_keys([name, age])

dict.values()

#返回所有键值 staff = {nameSEO靠我:bob,age:25} staff.values() >>>dict_values([bob, 25])

dict.setdefault(key,default)

#新增SEO靠我键,存在则不新增 staff = {name:bob,age:25} staff.setdefault(name:bob,"sex","m") stafSEO靠我f >>>{age: 25, name: bob, sex: m}

dict.update(dict2)

#更新nstaff更新到ostaff ostaff = {nameSEO靠我:bob,age:25} nstaff = {name:bob,sex:m} ostaff.update(nstaff) ostaff SEO靠我>>>{age: 25, name: bob, sex: m}

dict.pop(key,default)

#删除键名所指的键值对,无此键名则返回default设定的值 staff = {SEO靠我name:bob,age:25} staff.pop("age","") >>>25

dict.popitem()

#随机删除 staff = {name:SEO靠我bob,age:25} staff.popitem() >>>(age, 25)

集合

集合运算

set1 = set("abcxyzcba") set2 =SEO靠我 set("idea") 符号描述过程结果-差集set1-set2{b, c, x, y, z}|并集set1|set2{a, b, c, d, e, i, x, y, z}&交集seSEO靠我t1&set2{a}^去同集(去掉相同)set1^set2{b, c, d, e, i, x, y, z}

条件控制语句

if...elif...else

if 条件:do elif 条件:SEO靠我do else:do

while

cai = int(input("1-100")) key = 20 while cai != key:if cai > SEO靠我key:print("大了")else:print("小了")cai = int(input("1-100")) print("中了")

for

a = [a,b,c] fSEO靠我or e in a:print(e) >>> abc

break

a = [a,b,c] for e in a:if e == "b":print(e)breakprintSEO靠我("no") >>> nob

continue

a = [1,2,3,4] for e in a:if e >= 3:continueprint(e) >>SEO靠我> 12 符号描述<小于<=小于等于>大于>=大于等于==恒等!=不等in属于not in不属于

自定义函数

def

def 函数名(参数)语句例: def afunc(sSEO靠我ex):if sex == 0:return("man")else:return("woman") afunc(1) def 函数名(*参数)语句例: SEO靠我def average(*args):s = 0for i in argss += ireturn s/len(args) average(1,2,3,4,5)

lambda

常规:defSEO靠我 fun(x,y):return x*yfun(1,2) lambda:fun = lambda x,y:x*yfun(1,2)

全局变量

name = "a" #全局变量 SEO靠我 def changeName():global name #加上global则修改namename = "b" changeName() name

Class

clasSEO靠我s Human:age = 1def language(self):return "CH" H = Human()print("Human的age:",H.age,"Human的lanSEO靠我guage:",H.language())

Construction Class

extend

class 子类(父类)

private

class Human:__age = 0Human.__age SEO靠我 >>>AttributeError: type object Human has no attribute __age

模块

import module #导入某个模块 fromSEO靠我 module import function #导入模块中某个函数 from module inport func1,func2 #导入模块中多个函数 from moSEO靠我dule import * #导入模块中所有函数

文件

file object = open(file_name[,access_mode][,buffering]) 模式描述r只读/指针SEO靠我开头/默认rb二进制只读/指针开头/默认/非文本r+读写/指针开头rb+二进制/读写/指针开头/非文本w写入/覆盖/建新wb二进制/写入/覆盖/创建非文本w+读写/覆盖/创建wb+二进制/读写/覆盖/SEO靠我创建/非文本a追加/指针结尾/创建ab二进制/追加/指针结尾/创建a+读写/指针结尾/追加/创建ab+二进制/追加/指针/结尾/创建

open()

fo = open("D:/foo.txt","wb")SEO靠我 print(fo.name,fo.closed,fo.mode)

close()

fo = open("D:/foo.txt","wb") fo.close() SEO靠我 with open("D:/foo.txt","wb") as fo:fo.write(b"hello")

write()

with open("D:/foo.txt","w") as fo:foSEO靠我.write("www.baidu.com!\naaa!\n")

read()

#读取到 with open("D:/foo.txt","r+") as fo:str = fo.read(SEO靠我10) print(str) >>>www.baidu.

tell()

#获取当前文件位置 with open("D:/foo.txt","w") as fSEO靠我o:fo.write("www.baidu.com!\naaa!\n")line = fo.read() print "读取的数据为: %s" % (line)# 获取当前文件位置 SEO靠我 pos = fo.tell() print "当前位置: %d" % (pos)fo.close()

seek()

#调整指针位置 #seek(offset[SEO靠我, whence]) #offset -- 开始的偏移量,也就是代表需要移动偏移的字节数 #whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位SEO靠我置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。# 重新设置文件读取指针到开头 with open("D:/foo.txt","w") as foSEO靠我:fo.write("www.baidu.com!\naaa!\n")line = fo.read() print "读取的数据为: %s" % (line)fo.seek(0, 0)SEO靠我 line = fo.read() print "读取的数据为: %s" % (line)fo.close()

rename()

import os os.SEO靠我rename("D:/foo.txt","D:/too.txt")

remove()

import os os.remove("D:/too.txt")

目录

mkdir()

import osSEO靠我 os.mkdir("D:/too")

rmdir()

#内含文件不能删 import os os.rmdir("D:/too")

walk()

#遍历文件夹和SEO靠我文件 import os os.walk("D:/too") #删除文件夹下的所有文件夹和文件 for i in os.walk("D:SEO靠我/too"):for fname in i[2]:full_name = os.path.join(i[0],fname)os.remove(full_name)for dirc in i[1]:fuSEO靠我ll_dir = os.path.join(i[0],dirc)remove_dir(full_dir) os.rmdir("D:/too")

getcwd()

os.getcwd()

异常SEO靠我处理

示例

numpy

属性

a.ndim

#维度 import numpy as np

a.shape

#各维度尺度

a.size

#元素的个数

a.dtype

#元素的类型

a.itemsize

#元素大小SEO靠我

np.arange(n)

#从0到n-1的ndarray类型 import numpy as np a = np.arange(10) a SEO靠我 >>>array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

np.ones(shape)

#生成1的数组 import numpy as np npSEO靠我.ones((3,4)) >>>array([[1., 1., 1., 1.],[1., 1., 1., 1.],[1., 1., 1., 1.]])

np.zeros((shape),SEO靠我dtype=np.int32)

#生成int32型的0 import numpy as np np.zeros((3,4),dtype=np.int32) SEO靠我 >>>array([[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]])

np.full(shape,val)

#生成val import numpy as SEO靠我np np.full((2,3),6) >>>array([[6, 6, 6],[6, 6, 6]])

np.eye(n)

#生成单位矩阵 import nSEO靠我umpy as np np.eye(5) >>>array([[1., 0., 0., 0., 0.],[0., 1., 0., 0., 0.],[0., 0., 1.SEO靠我, 0., 0.],[0., 0., 0., 1., 0.],[0., 0., 0., 0., 1.]])

np.ones_like(arr)

#按照数组形状生成1的数组 import nSEO靠我umpy as np a = np.eye(5) np.ones_like(a) >>>array([[1., 1., 1., 1., 1.],[1.,SEO靠我 1., 1., 1., 1.],[1., 1., 1., 1., 1.],[1., 1., 1., 1., 1.],[1., 1., 1., 1., 1.]])

np.zeros_like(arr)

#SEO靠我按照数组形状生成0的数组 import numpy as np a = np.eye(5) np.zeros_like(a) >>>arSEO靠我ray([[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0.SEO靠我, 0., 0.]])

np.full_like(arr,val)

#按照数组形状生成定值的数组 import numpy as np a = np.eye(5) SEO靠我 np.full_like(a,6) >>>array([[6., 6., 6., 6., 6.],[6., 6., 6., 6., 6.],[6., 6., 6., 6., 6SEO靠我.],[6., 6., 6., 6., 6.],[6., 6., 6., 6., 6.]])

np.linspace(start,end,isometry)

#范围内等距生成数组 impoSEO靠我rt numpy as np np.linspace(1,9,3) >>>array([1., 5., 9.])

数组维度变换

a.reshape(shape)

#生成行列 SEO靠我 import numpy as np a=np.arange(27) a.reshape(3,9) >>>array([[ 0, 1, SEO靠我2, 3, 4, 5, 6, 7, 8],[ 9, 10, 11, 12, 13, 14, 15, 16, 17],[18, 19, 20, 21, 22, 23, 24, 25, 26]])

a.reSEO靠我size(shape)

 

a.swpaxes(ax1,ax2)

#轴交换 import numpy as np a=np.arange(27).reshape(3,9) SEO靠我 a.swapaxes(0,1) >>>array([[ 0, 9, 18],[ 1, 10, 19],[ 2, 11, 20],[ 3, 12, 21],[ 4, 13, SEO靠我22],[ 5, 14, 23],[ 6, 15, 24],[ 7, 16, 25],[ 8, 17, 26]])

a.flatten()

#数组压扁 import numpy as npSEO靠我 a=np.arange(24).reshape((2,3,4)) a.flatten() >>>array([ 0, 1, 2, 3, 4, 5, 6SEO靠我, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,17, 18, 19, 20, 21, 22, 23])

数组的类型转换

a.astype(new_type)

import nuSEO靠我mpy as np a=np.arange(24).reshape((2,3,4)) a.astype(float)

a.tolist()

import numpy as SEO靠我np a=np.arange(24).reshape((2,3,4)) a.tolist()

数组的索引和切片

一维数组切片

#arr[起始:结束(不含):步长] SEO靠我 import numpy as np a = np.arange(10) a[1:4:2]

多维数组索引和切片

#索引 #arr[起始:结束(不含):SEO靠我步长] import numpy as np a=np.arange(24).reshape((2,3,4)) a[1,2,3] >>>SEO靠我23 #切片 #arr[起始:结束:步长] import numpy as np a=np.arange(24).reshape((2,SEO靠我3,4)) a[:,:,::2] >>>array([[[ 0, 2],[ 4, 6],[ 8, 10]],[[12, 14],[16, 18],[20, 22]]])SEO靠我

随机数函数

np.random.rand(int0,int1...intN)

#随机浮点数 import numpy as np np.random.rand(2,3)

npSEO靠我.random.randn(int0,int1...intN)

#标准正态分布 import numpy as np np.random.randn(2,3)

np.ranSEO靠我dom.randint(low,high,(shape))

#随机整数或整数数组 import numpy as np np.random.randint(1,10,(2SEO靠我,3))

统计函数

np.sum

#求和 import numpy as np a=np.arange(24).reshape((2,3,4)) np.sumSEO靠我(a) np.sum(a,axis=1)

np.mean

#总体平均值 import numpy as np a=np.arange(24).reshapeSEO靠我((2,3,4)) np.mean(a) np.mean(a,axis=1)

np.std

#

np.var

#

np.min

#最小值 a=np.arange(2SEO靠我4).reshape((2,3,4)) np.min(a) np.min(a,axis=1)

np.max

#最大值 a=np.arange(24).resSEO靠我hape((2,3,4)) np.max(a) np.max(a,axis=1)

np.argmin

#最小值的下标(一维)

np.argmax

#最大值的下标(一维)

np.mSEO靠我edian()

#中值

画图

import numpy as np import matplotlib.pyplot as plt %matplotlib inline SEO靠我 x = np.linspace(0,2*np.pi,100) y = np.sin(x)plt.plot(x,y) plt.axhline(0,linestSEO靠我yle="--")

pandas

import pandas as pd

导入

pd.read_csv(filename)

c = pd.read_csv("D://a.csv",encoding="UTF-8SEO靠我")

pd.read_table(filename)

c = pd.read_table("D://a.csv")

pd.read_execl(filename)

c = pd.read_excel("D:/SEO靠我/BTC-buy.xls",encoding="UTF-8")

pd.read_sql(query,connection_object)

[提示]  需要cmd里找pip.exe安装install pymSEO靠我ysql

import pymysql conn = pymysql.Connect(host=127.0.0.1,port=3306,user=root,passwd=root,db=SEO靠我test,charset=utf8mb4 ) conn query = "select * from salse" df = pd.reSEO靠我ad_sql(query,conn) df conn.close()

pd.read_json()

json_str = {"name":["jack","tom"],"aSEO靠我ge":[18,20]} df = pd.read_json(json_str) df

pd.read_html(url)

url="http://quote.stocksSEO靠我tar.com/" dfs = pd.read_html(url,attrs={id:table1}) dfs[0]

pd.read_clipboard()

a,1 SEO靠我 b,2 c,3 df = pd.read_clipboard(seq=",")

pd.DataFrame(dict)

dict1 = {"name":["jackSEO靠我","tom"],"age":[18,20]} df = pd.DataFrame(dict1) df

导出

df.to_cvs(filename)

dict1 = {"naSEO靠我me":["jack","tom"],"age":[18,20]} df = pd.DataFrame(dict1) df.to_csv("D://csv1.csv",SEO靠我index=False)

df.to_excel(filename)

dict1 = {"name":["jack","tom"],"age":[18,20]} df = pd.DataFSEO靠我rame(dict1) df.to_excel("D://xls1.xls",index=False)

df.to_sql(table_name,connection_object)

imSEO靠我port pandas as pd from sqlalchemy import create_engine conn = create_engine(mysql+pySEO靠我mysql://root:root@localhost:3306/test?charset=utf8mb4)pd.io.sql.to_sql(df,"BTC_buy",con=conn,if_exisSEO靠我ts=append,index=False)

df.to_json(filename)

import pandas as pd dict1 = {"name":["jack","tom"]SEO靠我,"age":[18,20]} df = pd.DataFrame(dict1) df.to_json("D://json1.json")

创建对象

pd.DataFramSEO靠我e(np.random.rand(row,column),column=list)

#创建DataFrame对象 import numpy as np df = pd.DSEO靠我ataFrame(np.random.rand(5,2),columns=[a,b]) df

pd.Series(list)

#创建索引 import numpy as nSEO靠我p arr = np.array([1,2,3,4]) s = pd.Series(arr) s

pd.date_range()

#日期索引 SEO靠我 import numpy as np df = pd.DataFrame(np.random.rand(5,2),columns=[a,b]) df.index = SEO靠我pd.date_range("2018-5-28",periods=df.shape[0]) df

查看/检查数据

df.head(n)

#查看DataFrame前N行 imSEO靠我port numpy as np df = pd.DataFrame(np.random.rand(5,2),columns=[a,b]) df.head(2)

df.tSEO靠我ail(n)

#查看DataFrame倒数N行 import numpy as np df = pd.DataFrame(np.random.rand(5,2),coluSEO靠我mns=[a,b]) df.tail(2)

df.shape

#查看行,列数 import numpy as np df = pd.DataFrame(npSEO靠我.random.rand(5,2),columns=[a,b]) df.shape

df.info()

#查看索引类型、数据类型、内存信息 import numpy as SEO靠我np df = pd.DataFrame(np.random.rand(5,2),columns=[a,b]) df.info()

df.describe()

#查看数值列SEO靠我的汇总统计 import numpy as np df = pd.DataFrame(np.random.rand(5,2),columns=[a,b]) SEO靠我 df.describe()

s.value_counts(dropna=False)

#查看Series的唯一值和计数 conn = pymysql.Connect(host=127.SEO靠我0.0.1,port=3306,user=root,passwd=root,db=test,charset=utf8mb4 ) conn pd.readSEO靠我_sql("select 位置 from salse",conn)["位置"].value_counts() conn.close()

df.apply(pd.Series.value_SEO靠我counts)

#查看DataFrame中每列的唯一值 import numpy as np df = pd.DataFrame(np.random.rand(5,2),SEO靠我columns=[a,b])

数据选取

df[col]

#根据列,以Series形式返回列 conn = pymysql.Connect(host=127.0.0.1,port=3306,uSEO靠我ser=root,passwd=root,db=test,charset=utf8mb4 ) conn query = "select * from sSEO靠我alse" df = pd.read_sql(query,conn) df[位置]

df[[col1,col2]]

#以DataFrame返回多列 df[[SEO靠我位置,价格]]

s.iloc[0]

#按位选取数据 df.iloc[0] df[位置].iloc[0]

s.iloc[index_one]

#按索引选取数据 dSEO靠我f[价格].iloc[1]

df.iloc[0,:]

#返回第一行 df.iloc[0,:]

df.iloc[0,0]

#返回第一列第一个元素 df.iloc[0,0]

df.lSEO靠我oc[index_one,column_one]

#按索引,列选取数据 df.loc[0,成交量]

df.ix[0,column_one]

#返回第一行的某一列对应元素 dfSEO靠我.ix[0,成交量]

数据清洗

df.columns=[a,b,c]

#重命名列名 import numpy as np df = pd.DataFrame(np.randoSEO靠我m.rand(5,2),columns=[a,b]) df.columns=[val1,val2] df

df.isnull()

#检查DataFrame中空值,返回booSEO靠我lean数组 import numpy as np df = pd.DataFrame(np.random.rand(5,2),columns=[a,b]) SEO靠我 df.isnull()

df.notnull()

#检查DataFrame中非空值,返回boolean数组 import numpy as np df = pd.DaSEO靠我taFrame(np.random.rand(5,2),columns=[a,b]) df.notnull()

df.dropna()

#删除所有包含空值的行 importSEO靠我 numpy as np df = pd.DataFrame(np.random.rand(5,2),columns=[a,b]) df.dropna()

df.dropSEO靠我na(axis=1)

#删除所有包含空值的列 import numpy as np df = pd.DataFrame(np.random.rand(5,2),columSEO靠我ns=[a,b]) df.dropna(axis=1)

df.dropna(axis=1,thresh=n)

#删除所有小于n的非空值的列 import numpy as SEO靠我np df = pd.DataFrame(np.random.rand(5,2),columns=[a,b]) df.dropna(axis=1,thresh=n)

dfSEO靠我.fillna(x)

#用x替换DataFrame中所有空值 import numpy as np df = pd.DataFrame(np.random.rand(5,SEO靠我2),columns=[a,b]) df.fillna(x)

df.rename(columns=lambda x:x+1)

#批量更改列名 import numpy asSEO靠我 np df = pd.DataFrame(np.random.rand(5,2),columns=[a,b]) df.rename(columns=lambda x:SEO靠我x+1)

df.rename(columns={old_name:"new_name"})

#有选取的更改列名 import numpy as np df = pd.DatSEO靠我aFrame(np.random.rand(5,2),columns=[a,b]) df.rename(columns={b:c})

df.set_index(column_one)

#更SEO靠我改索引列 import numpy as np df = pd.DataFrame(np.random.rand(5,2),columns=[a,b]) SEO靠我 df.set_index(a)

df.rename(index=lambda x:x+1)

#批量重命名索引名 import numpy as np df = pd.DaSEO靠我taFrame(np.random.rand(5,2),columns=[a,b]) df.rename(index=lambda x:x+1)

s.replace(1,one)

#用onSEO靠我e代替所有等于1, import numpy as np s = pd.DataFrame(np.random.rand(5,2),columns=[a,b]) SEO靠我 s.replace(1,one)

s.replace([1,3],[one,three])

#用one代替所有等于1的,用three代替所有等于3的 import numpy aSEO靠我s np s = pd.DataFrame(np.random.rand(5,2),columns=[a,b]) s.replace([1,3],[one,three]SEO靠我)

s.astype(float)

#将Series数据类型改为float类型 import numpy as np df = pd.DataFrame({"name":[SEO靠我"A","B"],"score":[1,2]}) df.score = df.score.astype(float) df.info()

s.fillna(s.mean(SEO靠我))

#用某列的均值 填充 某列的空值 import numpy as np df = pd.DataFrame(np.random.rand(5,2),columns=SEO靠我[a,b])

5-10-3

解决matplotlib中文乱码问题(Windows)http://www.pythoner.com/200.html

“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2