python星空函数,星空python代码
68 个 Python 内置函数详解
内置函数就是Python给你提供的,拿来直接用的函数,比如print.,input等。
在平遥等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计、做网站 网站设计制作按需网站策划,公司网站建设,企业网站建设,成都品牌网站建设,成都全网营销推广,成都外贸网站建设,平遥网站建设费用合理。
截止到python版本3.6.2 ,python一共提供了68个内置函数,具体如下
本文将这68个内置函数综合整理为12大类,正在学习Python基础的读者一定不要错过,建议收藏学习!
(1)列表和元组
(2)相关内置函数
(3)字符串
frozenset 创建一个冻结的集合,冻结的集合不能进行添加和删除操作。
语法:sorted(Iterable, key=函数(排序规则), reverse=False)
语法:fiter(function. Iterable)
function: 用来筛选的函数. 在filter中会自动的把iterable中的元素传递给function. 然后根据function返回的True或者False来判断是否保留留此项数据 , Iterable: 可迭代对象
搜索公众号顶级架构师后台回复“面试”,送你一份惊喜礼包。
语法 : map(function, iterable)
可以对可迭代对象中的每一个元素进行映射. 分别去执行 function
hash : 获取到对象的哈希值(int, str, bool, tuple). hash算法:(1) 目的是唯一性 (2) dict 查找效率非常高, hash表.用空间换的时间 比较耗费内存
python 8个常用内置函数解说
8个超好用内置函数set(),eval(),sorted(),reversed(),map(),reduce(),filter(),enumerate()
python中有许多内置函数,不像print那么广为人知,但它们却异常的强大,用好了可以大大提高代码效率。
这次来梳理下8个好用的python内置函数
1、set()
当需要对一个列表进行去重操作的时候,set()函数就派上用场了。
用于创建一个集合,集合里的元素是无序且不重复的。集合对象创建后,还能使用并集、交集、差集功能。
2、eval()之前有人问如何用python写一个四则运算器,输入字符串公式,直接产生结果。用eval()来做就很简单:eval(str_expression)作用是将字符串转换成表达式,并且执行。
3、sorted()在处理数据过程中,我们经常会用到排序操作,比如将列表、字典、元组里面的元素正/倒排序。这时候就需要用到sorted() ,它可以对任何可迭代对象进行排序,并返回列表。对列表升序操作:
对元组倒序操作:
使用参数:key,根据自定义规则,按字符串长度来排序:
根据自定义规则,对元组构成的列表进行排序:
4、reversed()如果需要对序列的元素进行反转操作,reversed()函数能帮到你。reversed()接受一个序列,将序列里的元素反转,并最终返回迭代器。
5、map()做文本处理的时候,假如要对序列里的每个单词进行大写转化操作。这个时候就可以使用map()函数。
map()会根据提供的函数,对指定的序列做映射,最终返回迭代器。也就是说map()函数会把序列里的每一个元素用指定的方法加工一遍,最终返回给你加工好的序列。举个例子,对列表里的每个数字作平方处理:
6、reduce()前面说到对列表里的每个数字作平方处理,用map()函数。那我想将列表里的每个元素相乘,该怎么做呢?这时候用到reduce()函数。
reduce()会对参数序列中元素进行累积。第一、第二个元素先进行函数操作,生成的结果再和第三个元素进行函数操作,以此类推,最终生成所有元素累积运算的结果。再举个例子,将字母连接成字符串。
你可能已经注意到,reduce()函数在python3里已经不再是内置函数,而是迁移到了functools模块中。这里把reduce()函数拎出来讲,是因为它太重要了。
7、filter()一些数字组成的列表,要把其中偶数去掉,该怎么做呢?
filter()函数轻松完成了任务,它用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象。filter()函数和map()、reduce()函数类似,都是将序列里的每个元素映射到函数,最终返回结果。我们再试试,如何从许多单词里挑出包含字母w的单词。
8、enumerate()这样一个场景,同时打印出序列里每一个元素和它对应的顺序号,我们用enumerate()函数做做看。
enumerate翻译过来是枚举、列举的意思,所以说enumerate()函数用于对序列里的元素进行顺序标注,返回(元素、索引)组成的迭代器。再举个例子说明,对字符串进行标注,返回每个字母和其索引。
python 随手记 (4) python 函数中*(star/asterisk)和**的使用
1、函数定义时
-使用单个 * 会将所有的参数,放入一个元组(tuple)供函数使用。
-使用两个 ** 将所有的关键字参数(键-值对形式),放入一个字典(dict)供函数使用。
2.函数调用时
-在list,tuple,set前加一个星号会把容器中的所有元素解包(unpack)变成位置参数。
-在dict前加一个星号会把字典的键变成位置参数。
-在dict前加两个星号会把字典的键值对变成关键字参数。
1、* 的具体使用。位置参数和可变参数的灵活使用
1.1 在函数定义时候,将所有的位置参数放入一个元祖中
1.2 在函数调用时使用*,将list、tuple、set,解包成位置参数。
2、**的具体使用。关键字参数和可变参数的具体使用。
2.1 在函数定义时
3、 和 * 在函数中一起使用
注意,在*arg之后,函数只接收关键字参数
python所有内置函数的定义详解
1、定义函数
函数是可重用的程序。本书中已经使用了许多内建函数,如len()函数和range()函数,但是还没自定义过函数。定义函数的语法格式如下:
def 函数名(参数):
函数体
定义函数的规则如下:
①关键字def用来定义一个函数,它是define的缩写。
②函数名是函数的唯一标识,函数名的命名规则遵循标识符的命名规则。
③函数名后面一定要紧跟着一个括号,括号内的参数是可选的,括号后面要有冒号。
④函数体(statement)为一个或一组Python语句,注意要有缩进。
⑤函数体的第一行可以有文档字符串,用于描述函数的功能,用三引号括起来。
按照定义规则,可以定义第一个函数了:
def hello_world():
... print('Hello,world!') # 注意函数体要有缩进
...
hello_world()
Hello,world!
这个函数不带任何参数,它的功能是打印出“Hello,world!”。最后一行代码hello_world()是调用函数,即让Python执行函数的代码。
2、全局变量和局部变量
全局变量是定义在所有函数外的变量。例如,定义一个全局变量a,分别在函数test1()和test2()使用变量a:
a = 100 # 全局变量
def test1():
... print(a)
...
def test2():
... print(a)
...
test1()
100
test2()
100
定义了全局变量a之后,在函数test1()和test2()内都可以使用变量a,由此可知,全局变量的作用范围是全局。
局部变量是在函数内定义的变量,除了用关键字global修饰的变量以外。例如,在函数test1()内定义一个局部变量a,分别在函数外和另一个函数test2()内使用变量a:
def test1():
... a = 100 # 局部变量
... print(a)
...
def test2():
... print(a)
...
test1()
100
print(a)
Traceback (most recent call last):
File "stdin", line 1, in module
NameError: name 'a' is not defined
test2()
Traceback (most recent call last):
File "stdin", line 1, in module
File "stdin", line 2, in test2
NameError: name 'a' is not defined
Python解释器提示出错了。由于局部变量a定义在函数test1()内,因此,在函数test1()内可以使用变量a,但是在函数外或者另一个函数test2()内使用变量a,都会报错,由此可见,局部变量的作用范围是定义它的函数内部。
一般情况下,在函数内声明的变量都是局部变量,但是采用关键字global修饰的变量却是全局变量:
def test1():
... global a # 全局变量
... a = 100
... print(a)
...
def test2():
... print(a)
...
test1()
100
print(a)
100
test2()
100
这个程序与上个程序相比,只是在函数test1()中多了一行代码“global a”,程序便可以正确运行了。在函数test1()中,采用关键字global修饰了变量a之后,变量a就变成了全局变量,不仅可以在该函数内使用,还可以在函数外或者其他函数内使用。
如果在某个函数内局部变量与全局变量同名,那么在该函数中局部变量会覆盖全局变量:
a = 100 # 全局变量
def test1():
... a = 200 # 同名局部变量
... print(a)
...
def test2():
... print(a)
...
test1()
200
test2()
100
由于在函数test1()中定义了一个与全局变量同名的局部变量a,因此,在函数test1()中全局变量a的值被局部变量覆盖了,但是在函数test2()中全局变量a的值没有被覆盖。
综上所述,在Python中,全局变量保存的数据供整个脚本文件使用;而局部变量只用于临时保存数据,变量仅供局部代码块使用。
python skylearn 包含哪些函数
内置函数,在python帮助文档中:Build-in Functions
在Python提示符下,输入下面语句,就会显示Python提供的内置函数列表
dir('__builtins__')
abs(_) 内置函数,绝对值或复数的模。
chr() 以单字节整数为参数,返回一个单字符的字符串,其内容是与之对于的ASCII字符。如chr(69)返回'E'。
cmp() 比较字符串,cmp('Xiao','Jian')返回1
121 11 个案例掌握 Python 数据可视化--星际探索
星空是无数人梦寐以求想了解的一个领域,远古的人们通过肉眼观察星空,并制定了太阴历,指导农业发展。随着现代科技发展,有了更先进的设备进行星空的探索。本实验获取了美国国家航空航天局(NASA)官网发布的地外行星数据,研究及可视化了地外行星各参数、寻找到了一颗类地行星并研究了天体参数的相关关系。
输入并执行魔法命令 %matplotlib inline, 设置全局字号,去除图例边框,去除右侧和顶部坐标轴。
本数据集来自 NASA,行星发现是 NASA 的重要工作之一,本数据集搜集了 NASA 官网发布的 4296 颗行星的数据,本数据集字段包括:
导入数据并查看前 5 行。
截至 2020 年 10 月 22 日 全球共发现 4296 颗行星,按年聚合并绘制年度行星发现数,并在左上角绘制 NASA 的官方 LOGO 。
从运行结果可以看出,2005 年以前全球行星发现数是非常少的,经计算总计 173 颗,2014 和 2016 是行星发现成果最多的年份,2016 年度发现行星 1505 颗。
对不同机构/项目/计划进行聚合并降序排列,绘制发现行星数目的前 20 。
2009 年至 2013 年,开普勒太空望远镜成为有史以来最成功的系外行星发现者。在一片天空中至少找到了 1030 颗系外行星以及超过 4600 颗疑似行星。当机械故障剥夺了该探测器对于恒星的精确定位功能后,地球上的工程师们于 2014 年对其进行了彻底改造,并以 K2 计划命名,后者将在更短的时间内搜寻宇宙的另一片区域。
对发现行星的方式进行聚合并降序排列,绘制各种方法发现行星的比例,由于排名靠后的几种方式发现行星数较少,因此不显示其标签。
行星在宇宙中并不会发光,因此无法直接观察,行星发现的方式多为间接方式。从输出结果可以看出,发现行星主要有以下 3 种方式,其原理如下:
针对不同的行星质量,绘制比其质量大(或者小)的行星比例,由于行星质量量纲分布跨度较大,因此采用对数坐标。
从输出结果可以看出,在已发现的行星中,96.25% 行星的质量大于地球。(图中横坐标小于 e 的红色面积非常小)
通过 sns.distplot 接口绘制全部行星的质量分布图。
从输出结果可以看出,所有行星质量分布呈双峰分布,第一个峰在 1.8 左右(此处用了对数单位,表示大约 6 个地球质量),第二个峰在 6.2 左右(大概 493 个地球质量)。
针对不同发现方式发现的行星,绘制各行星的公转周期和质量的关系。
从输出结果可以看出:径向速度(Radial Velocity)方法发现的行星在公转周期和质量上分布更宽,而凌日(Transit)似乎只能发现公转周期相对较短的行星,这是因为两种方法的原理差异造成的。对于公转周期很长的行星,其运行到恒星和观察者之间的时间也较长,因此凌日发现此类行星会相对较少。而径向速度与其说是在发现行星,不如说是在观察恒星,由于恒星自身发光,因此其观察机会更多,发现各类行星的可能性更大。
针对不同发现方式发现的行星,绘制各行星的距离和质量的关系。
从输出结果可以看出,凌日和径向速度对距离较为敏感,远距离的行星大多是通过凌日发现的,而近距离的行星大多数通过径向速度发现的。原因是:近距离的行星其引力对恒星造成的摆动更为明显,因此更容易观察;当距离较远时,引力作用变弱,摆动效应减弱,因此很难借助此方法观察到行星。同时,可以观察到当行星质量更大时,其距离分布相对较宽,这是因为虽然相对恒星的距离变长了,但是由于行星质量的增加,相对引力也同步增加,恒星摆动效应会变得明显。
将所有行星的质量和半径对数化处理,绘制其分布并拟合其分布。
由于:
因此,从原理上质量对数与半径对数应该是线性关系,且斜率为定值 3 ,截距的大小与密度相关。
从输出结果可以看出:行星质量和行星半径在对数变换下,具有较好的线性关系。输出 fix_xy 数值可知,其关系可以拟合出如下公式:
拟合出曲线对应的行星平均密度为:
同样的方式绘制恒星质量与半径的关系。
从输出结果可以看出,恒星与行星的规律不同,其质量与半径在对数下呈二次曲线关系,其关系符合以下公式:
同样的方式研究恒星表面重力加速度与半径的关系。
从输出结果可以看出,恒星表面对数重力加速度与其对数半径呈现较好的线性关系:
以上我们分别探索了各变量的分布和部分变量的相关关系,当数据较多时,可以通过 pd.plotting.scatter_matrix 接口,直接绘制各变量的分布和任意两个变量的散点图分布,对于数据的初步探索,该接口可以让我们迅速对数据全貌有较为清晰的认识。
通过行星的半径和质量,恒星的半径和质量,以及行星的公转周期等指标与地球的相似性,寻找诸多行星中最类似地球的行星。
从输出结果可以看出,在 0.6 附近的位置出现了一个最大的圆圈,那就是我们找到的类地行星 Kepler - 452 b ,让我们了解一下这颗行星:
数据显示,Kepler - 452 b 行星公转周期为 384.84 天,半径为 1.63 地球半径,质量为 3.29 地球质量;它的恒星为 Kepler - 452 半径为太阳的 1.11 倍,质量为 1.04 倍,恒星方面数据与太阳相似度极高。
以下内容来自百度百科。 开普勒452b(Kepler 452b) ,是美国国家航空航天局(NASA)发现的外行星, 直径是地球的 1.6 倍,地球相似指数( ESI )为 0.83,距离地球1400光年,位于为天鹅座。
2015 年 7 月 24 日 0:00,美国国家航空航天局 NASA 举办媒体电话会议宣称,他们在天鹅座发现了一颗与地球相似指数达到 0.98 的类地行星开普勒 - 452 b。这个类地行星距离地球 1400 光年,绕着一颗与太阳非常相似的恒星运行。开普勒 452 b 到恒星的距离,跟地球到太阳的距离相同。NASA 称,由于缺乏关键数据,现在不能说 Kepler - 452 b 究竟是不是“另外一个地球”,只能说它是“迄今最接近另外一个地球”的系外行星。
在银河系经纬度坐标下绘制所有行星,并标记地球和 Kepler - 452 b 行星的位置。
类地行星,是人类寄希望移民的第二故乡,但即使最近的 Kepler-452 b ,也与地球相聚 1400 光年。
以下通过行星的公转周期和质量两个特征将所有行星聚为两类,即通过训练获得两个簇心。
定义函数-计算距离
聚类距离采用欧式距离:
定义函数-训练簇心
训练簇心的原理是:根据上一次的簇心计算所有点与所有簇心的距离,任一点的分类以其距离最近的簇心确定。依此原理计算出所有点的分类后,对每个分类计算新的簇心。
定义函数预测分类
根据训练得到的簇心,预测输入新的数据特征的分类。
开始训练
随机生成一个簇心,并训练 15 次。
绘制聚类结果
以最后一次训练得到的簇心为基础,进行行星的分类,并以等高面的形式绘制各类的边界。
从运行结果可以看出,所有行星被分成了两类。并通过上三角和下三角标注了每个类别的簇心位置。
聚类前
以下输出了聚类前原始数据绘制的图像。
分享文章:python星空函数,星空python代码
分享网址:http://myzitong.com/article/hddhch.html