python中函数用法
- unique()
- numpy.tolist()
- collections.defaultdict()
- random.sample()[]
1、 unique():返回参数数组中所有不同的值,并按照从小到大排序
可选参数:
return_index=True: 返回新列表中的每个元素在原列表中第一次出现的索引值,因此元素个数与新列表中元素个数一样;
return_inverse=True:返回原列表中的每个元素在新列表中出现的索引值,因此元素个数与原列表中元素个数一样。
#一、元素为数值型数据 import numpy as np A = [1, 2, 5, 3, 4, 3]
print ("原列表:", A)
print ("================") #返回任意的一个参数值
a = np.unique(A)
print ("新列表:", a)
print ("================") #返回任意的两个参数值
a, s = np.unique(A, return_index=True)
print ("新列表:",a)
print ("return_index:",s)
print ("===============") #返回全部三个参数值
a, s, p = np.unique(A, return_index=True, return_inverse=True)
print ("新列表:",a)
print ("return_index", s)
print ("return_inverse", p)
2、numpy tolist()将数组或者矩阵转换成列表;但是当矩阵是一维的时候,就不同了,所以一维矩阵经常会有tolist()[0]
>>> from numpy import *
>>> a1 = [[1,2,3],[4,5,6]] # a1是列表
>>> a2 = array(a1) # 列表——>数组
>>> a2
array([[1, 2, 3],
[4, 5, 6]])
>>> a3 = mat(a1) # 列表——>矩阵
>>> a3
matrix([[1, 2, 3],
[4, 5, 6]])
>>> a4 = a2.tolist() # 数组——>列表
>>> a4
[[1, 2, 3], [4, 5, 6]]
>>> a5 = a3.tolist() # 矩阵——>列表
>>> a5
[[1, 2, 3], [4, 5, 6]]
>>> a4 == a5
True
>>> a6 = mat(a2) # 数组--> 矩阵
>>> a6
matrix([[1, 2, 3],
[4, 5, 6]])
>>> a6 == a3
matrix([[ True, True, True],
[ True, True, True]], dtype=bool)
>>> a7 = array(a3) # 矩阵--> 数组
>>> a7
array([[1, 2, 3],
[4, 5, 6]])
>>> a7 == a2
array([[ True, True, True],
[ True, True, True]], dtype=bool)
当矩阵是一维的时候,就不同了,所以一维矩阵经常会有tolist()[0]
>>> a1 =[1,2,3,4,5,6] # 列表
>>> a2 = array(a1) # 列表 --> 数组
>>> a2
array([1, 2, 3, 4, 5, 6])
>>> a3 = mat(a1) #列表 ----> 矩阵
>>> a3
matrix([[1, 2, 3, 4, 5, 6]])
>>> a4 = a3.tolist() #矩阵 ---> 列表
>>> a4
[[1, 2, 3, 4, 5, 6]] # 注意!!有不同
>>> a1 == a4
False
>>> a8 = a3.tolist()[0] #矩阵 ---> 列表
>>> a8
[1, 2, 3, 4, 5, 6] # 注意!!有不同
>>> a1 == a8
True
>>> a5 = a2.tolist() # 数组 ---> 列表
>>> a5
[1, 2, 3, 4, 5, 6]
>>> a5 == a1
True
>>> a6 = mat(a2) # 数组 ---> 矩阵
>>> a6
matrix([[1, 2, 3, 4, 5, 6]])
>>> a6 == a3
matrix([[ True, True, True, True, True, True]], dtype=bool)
>>> a7 = array(a3) # 矩阵 ---> 数组
>>> a7
array([[1, 2, 3, 4, 5, 6]])
>>> a7 == a2
array([[ True, True, True, True, True, True]], dtype=bool)
3、Python中通过Key访问字典,当Key不存在时,会引发‘KeyError’异常。为了避免这种情况的发生,可以使用collections类中的defaultdict()方法来为字典提供默认值。
(1)使用list作第一个参数,可以很容易将键-值对序列转换为列表字典。
(2)defaultdict还可以被用来计数,将default_factory设为int即可。
(3)default_factory设为set时,可以用defaultdict建立集合字典(a dictionary of sets)。
4、对于random.sample的用法,多用于截取列表的指定长度的随机数,但是不会改变列表本身的排序;
list = [0,1,2,3,4]
rs = random.sample(list, 2)
print(rs)
print(list) 》》》[2, 4] #此数组随着不同的执行,里面的元素随机,但都是两个
》》》[0, 1, 2, 3, 4]
跟range相结合,在指定范围内获取一定长度的数据,这个用起来就比较灵活,代码如下:
rs = random.sample(range(0, 9), 4)
print(rs) 》》》[2, 6, 0, 4]
python中函数用法的更多相关文章
- Python回调函数用法实例详解
本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...
- python 中@ 的用法【转】
这只是我的个人理解: 在Python的函数中偶尔会看到函数定义的上一行有@functionName的修饰,当解释器读到@的这样的修饰符之后,会先解析@后的内容,直接就把@下一行的函数或者类作为@后边的 ...
- python之函数用法setdefault()
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法setdefault() #D.get(k,d) #说明:k在D中,则返回 D[K], ...
- python之函数用法fromkeys()
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法fromkeys() #fromkeys() #说明:用于创建一个新字典,以序列seq ...
- python之函数用法get()
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法get() #http://www.runoob.com/python/att-dic ...
- python之函数用法isupper()
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法isupper() #http://www.runoob.com/python/att ...
- Python中函数的参数传递与可变长参数
转自旭东的博客原文 Python中函数的参数传递与可变长参数 Python中传递参数有以下几种类型: (1)像C++一样的默认缺省函数 (2)根据参数名传参数 (3)可变长度参数 示例如下: (1)默 ...
- python之函数用法__getitem__()
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法__getitem__() #http://www.cnblogs.com/hongf ...
- python之函数用法__setattr__
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法__setattr__ #http://www.cnblogs.com/hongfei ...
随机推荐
- hibernate配置注意事项
1:多对一配置 private Set<DrawRecordModel> cjrecordsSet = new HashSet<DrawRecordModel>(); 正确 p ...
- Hibernate纯sql查询VO对象封装
hibernate 纯sql查询返回结果集(未关联映射)组装VO的问题//须保证别名字段与Vo字段一致 //引号中为vo对象属性需与sql查询返回字段一致.addScalar("chname ...
- BZOJ4710 [Jsoi2011]分特产 容斥
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4710 题解 本来想去找一个二项式反演的题的,结果被 https://www.cnblogs.c ...
- 明明不太合适但是还是被用在配置文件和数据传输上的XML
XML概述: 概念: 可扩展的标记语言. 功能: 作为数据本地存储的格式.(已淘汰)作为结构化存储的方式,不如数据库效率高.目前一部分移动设备中还在使用. 作为网络中传输数据的格式.(已淘汰)作为网络 ...
- boost location-independent times
The class boost::posix_time::ptime defindes a location-independent time. It uses the type boost::gre ...
- mui滚动区域的实现
mui框架实现页面中间区域滚动,头部和底部固定不动,要滚动的区域一定要有mui-scroll-wrapper 和 mui-scroll 包裹 <div class="mui-conte ...
- Java Web学习总结(9)学习总结-JSTL
一,JSTL概述 JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能.jstl出现的目的同el一样也是要代替jsp页 ...
- BZOJ 1018: [SHOI2008]堵塞的交通traffic(线段树分治+并查集)
传送门 解题思路 可以离线,然后确定每个边的出现时间,算这个排序即可.然后就可以线段树分治了,连通性用并查集维护,因为要撤销,所以要按秩合并,时间复杂度\(O(nlog^2 n)\) 代码 #incl ...
- [CSP-S模拟测试]:randomwalking(DP)
题目传送门(内部题59) 输入格式 第一行一个数$n$表示点数.第二行$n$个数$A_i$.接下来$n−1$行,每行两个数$u,v$表示$u$和$v$有边直接相连. 输出格式 一个数表示最小花费的起点 ...
- lua实现简单
MessageManager.lua local messageManager = {mEventTable = {},mEventUserData = {}} --注册事件function mess ...