python 循环添加array_Python的备忘细节小抄
最近无论是自己写程序还是看别人的开源程序,经常发现自己遗忘一些基本的Python知识,还得到网上查。遂抽出两天时间,复习(yu xi)python,把自己老容易忘掉的知识点总结成这个小抄的形式~
画图 Plot与Matplotlib 基础
Python提供了一个很像MATLAB的绘图接口。
from numpy import array
from matplotlib.pyplot import plot
a = array([1, 2, 3, 4, 5, 6, 7, 8])
plot(a, a**2)
plot(y)
plot(x, y) plot(x, y, format_string)
只给定 y 值,默认以下标为 x 轴:
%matplotlib inline
x = linspace(0, 2 * pi, 50)
plot(sin(x))
plot(x, sin(x))
plot(x, sin(x),x, sin(2 * x))
plot(x, sin(x), 'b-o',x, sin(2 * x), 'r-^')
散点图
scatter(x, sin(x))
直方图
从高斯分布随机生成1000个点得到的直方图:
hist(randn(1000))
文件操作 File IO
写文件
f = open('路径', 'w')
f.write('1 2 3 4n')
f.write('2 3 4 5n')
f.close()
读文件
f = open('路径')
data = []
for line in f:data.append([field for field in line.split()])
f.close()
data
输出结果
[['1', '2', '3', '4'], ['2', '3', '4', '5']]
注:Python中有一种叫做列表推导式(List comprehension)的用法
numbers = [int(field) for field in fields]
numbers
输出结果:[1, 2, 3, 4, 5]
删除文件:
import os
os.remove('路径')
类 Class
用class
来定义一个类。 Person(object)
表示继承自object
类; __init__
函数用来初始化对象; self
表示对象自身,类似于CJava
里面this
。
class Person(object):def __init__(self, first, last, age):self.first = firstself.last = lastself.age = agedef full_name(self):return self.first + ' ' + self.last
这就涉及到为什么要用类与对象,我们可以使用人的那个类,造出好多不同的人(对象)。
Mertle = Person('Mertle', 'Sedgewick', 52)
Tom = Person('Tom', 'Swift', 28)
Tom.age
结果输出28,同理你可以得到任何已知对象的任何信息。
改变列表的方法
l.append(ob) 将元素 ob 添加到列表 l 的最后。
a = [10, 11, 12]
a.append(11)
print a
输出:[10, 11, 12, 11]
a.append([11, 12])
print a
输出:[10, 11, 12, 11, [11, 12]]
向列表添加序列:l.extend(lst)
将序列 lst
的元素依次添加到列表 l
的最后,作用相当于 l += lst
。
a = [10, 11, 12, 11]
a.extend([1, 2])
print a
输出:[10, 11, 12, 11, 1, 2]
插入元素:l.insert(idx, ob) 在索引 idx 处插入 ob ,之后的元素依次后移。
a = [10, 11, 12, 13, 11]
# 在索引 3 插入 'a'
a.insert(1, 'a')
print (a)
输出:[10, 'a', 11, 12, 13, 11]
移除元素:l.remove(ob) 会将列表中第一个出现的 ob 删除,如果 ob 不在 l 中会报错。
a = [10, 11, 12, 13, 11]
# 移除了第一个 11
a.remove(11)
print a
输出:[10, 12, 13, 11]
弹出元素:l.pop(idx) 会将索引 idx 处的元素删除,并返回这个元素。
a = [10, 11, 12, 13, 11]
a.pop(2)
输出:12
排序l.sort()
会将列表中的元素按照一定的规则排序。
列表反向l.reverse()
会将列表中的元素从后向前排列。
continue 语句与break 语句
遇到 continue 的时候,程序会返回到循环的最开始重新执行。
例如在循环中忽略一些特定的值:
values = [7, 6, 4, 7, 19, 2, 1]
for i in values:if i % 2 != 0:# 忽略奇数continueprint (i/2)
输出为:
3.0
2.0
1.0
遇到 break
的时候,程序会跳出循环,不管循环条件是不是满足。
函数接收不定参数
使用如下方法,可以使函数接受不定数目的参数:
def add(x, *args):total = xfor arg in args:total += argreturn total
add(1,2,3,4)
输出为:10
通过 map 的方式利用函数来生成序列
def sqr(x): return x ** 2a = [2,3,4]
print map(sqr, a)
输出为:[4, 9, 16]
其用法为:
map(aFun, aSeq)
将函数 aFun
应用到序列 aSeq
上的每一个元素上,返回一个列表,不管这个序列原来是什么类型。
事实上,根据函数参数的多少,map
可以接受多组序列,将其对应的元素作为参数传入函数。
__name__
属性
有时候我们想将一个 .py
文件既当作脚本,又能当作模块用,这个时候可以使用 __name__
这个属性。
只有当文件被当作脚本执行的时候, __name__
的值才会是 '__main__'
,所以我们可以
%%writefile ex2.pyPI = 3.1416def sum(lst):""" Sum the values in a list"""tot = 0for value in lst:tot = tot + valuereturn totdef add(x, y):" Add two values."a = x + yreturn adef test():w = [0,1,2,3]assert(sum(w) == 6)print ('test passed.')if __name__ == '__main__':test()
运行文件:
%run ex2.py
输出:test passed.
当作模块导入, test()
不会执行:
import ex2
但是可以使用其中的变量:
ex2.PI
输出:3.1416
也可以从模块中导入变量:
from ex2 import add, PI
使用 from
后,可以直接使用 add
, PI
try & except 块
写代码的时候,出现错误必不可免,即使代码没有问题,也可能遇到别的问题。一旦报错,程序就会停止执行,如果不希望程序停止执行,那么我们可以添加一对 try & except
:
import mathwhile True:try:text = raw_input('> ')if text[0] == 'q':breakx = float(text)y = 1 / math.log10(x)print "log10({0}) = {1}".format(x, y)except ValueError:print "the value must be greater than 0"except ZeroDivisionError:print "the value must not be 1"except Exception:print "unexpected error"
except后面跟着错误类型,如果有该错误,则执行其后语句。
try/catch 块还有一个可选的关键词 finally。
不管 try 块有没有异常, finally 块的内容总是会被执行,而且会在抛出异常前执行,因此可以用来作为安全保证,比如确保打开的文件被关闭。
try:print 1
finally:print 'finally was called.'
输出:
1
finally was called.
numpy画图
linspace 用来生成一组等间隔的数据:
a = linspace(0, 2*pi, 21)
%precision 3
a
输出
array([0. , 0.314, 0.628, 0.942, 1.257, 1.571, 1.885, 2.199, 2.513,2.827, 3.142, 3.456, 3.77 , 4.084, 4.398, 4.712, 5.027, 5.341,5.655, 5.969, 6.283])
三角函数,作图
b = sin(a)
%matplotlib inline
plot(a, b)
数组求和
a = array([[1,2,3], [4,5,6]])
sum(a)
输出21
指定求和的维度:
沿着第一维求和:
sum(a, axis=0)
输出:array([5, 7, 9])
沿着第二维求和
sum(a, axis=1)
输出:array([ 6, 15])
沿着最后一维求和
sum(a, axis=-1)
输出:array([ 6, 15])
求最大最小值的位置
a.argmin()
输出0
近似到一位小数:
round方法
a = array([1.35, 2.5, 1.5])
a.round()
输出:array([ 1., 2., 2.])
a.round(decimals=1)
输出:array([ 1.4, 2.5, 1.5])
python 循环添加array_Python的备忘细节小抄相关推荐
- python代码评测结果tle_Python的备忘细节小抄
最近无论是自己写程序还是看别人的开源程序,经常发现自己遗忘一些基本的Python知识,还得到网上查.遂抽出两天时间,复习(yu xi)python,把自己老容易忘掉的知识点总结成这个小抄的形式- 画图 ...
- python 循环添加array_python常用的基本语句介绍
今天介绍一下python常用的语句,从以下几个方面来说明. 1. 数据类型:列表 2. 数据类型:元组 3. 数据类型:字典 4. 条件语句:if--else-- 5. 循环语句:for循环 6. 循 ...
- python熊猫图案_熊猫备忘单–适用于数据科学的Python
python熊猫图案 Pandas is arguably the most important Python package for data science. Not only does it g ...
- 【Python】简约而不简单|值得收藏的Numpy小抄表(含主要语法、代码)
Numpy是一个用python实现的科学计算的扩展程序库,包括: 1.一个强大的N维数组对象Array: 2.比较成熟的(广播)函数库: 3.用于整合C/C++和Fortran代码的工具包: 4.实用 ...
- 【备忘】小布老师OracleDBA视频合集
01.Oracle在各种平台下的安装(全16讲).rar 02.小布老师oracle_SQL基础(全30讲).rar 03.oracle_SQLPLUS(全8讲).rar 04 ...
- python循环语句打印三角形_python循环输出三角形图案的例子
python循环输出三角形图案的例子 我就废话不多说了,直接上代码吧! #Copyright (c)2017, 东北大学软件学院学生 # All rightsreserved #文件名称:a.py # ...
- fib函数用python编写_Python中利用函数装饰器实现备忘功能
"备忘"的定义 "memoization"(备忘)这个词是由Donald Michie在1968年提出的,它基于拉丁语单词"memorandum&qu ...
- Python语法备忘
Python语法备忘 Numpy numpy数据类型: np常用函数 ndarry ndarray属性 ndarray函数 ndarray索引/切片方式 random函数 linalg函数 Panda ...
- python 桌面备忘录_Python数据科学备忘单
python 桌面备忘录 The printable version of this cheat sheet 该备忘单的可打印版本 It's common when first learning Py ...
最新文章
- debian10 nfs简单搭建
- 多进程python_python -- 多进程
- vb编程入门_【高能】用VB开发的彩票选号软件
- poi excel mysql_java的poi技术读取Excel数据到MySQL
- APScheduler 浅析
- 基于 HTTP 协议的几种实时数据获取技术
- VTK:可编程滤波器用法实战
- 1.7 Python基础知识 - 模块初识
- Database----Cursor
- bzoj 2843: 极地旅行社
- 了解SQL Server事务日志备份和完整备份的日志序列号
- linux mysql 数据按表名称备份
- springboot加载过程_SpringBoot自定义Starter,分析加载过程
- Cloudflare的介绍可以防DDOS 能防多少G呢?
- java继承封装多态特性_java 三大特性 封装 继承 多态
- 《活着》读后感4500字
- 国土档案管理信息系统【辅助说明】
- 无法查看MSN聊天记录 总弹出下载.xml文件的对话框
- 如视技术副总裁杨永林:当传统产业遇到“数字空间”
- excel表格怎么打印?来看看excel表格打印的正确打开方式
热门文章
- 组会PPT20200522《Summary of Study and Research from May 8 to May 21》
- 谈大学教育2018-01-12
- 云炬Android开发笔记 16附加功能开发(二维码,一键分享,分页,搜索)
- unity三维向量变化为角度_UNITY3D两个物体相对位置、角度、相对速度方向
- 域名与转发服务器ip指向不一致_域名映射到家庭网络(无公网IP)
- cad常用字体_2300多种CAD字体免费送给你!绘图必备,一键解决你的CAD文字乱码问题...
- [scala-spark]2. Scala运行原理与源码查看
- Python类与对象技巧(1):字符串格式化、封装属性名、可管理的属性、调用父类方法
- VTK修炼之道13:数据读写_图像数据的读写
- 从后台传给前台的url字符串值的注意事项