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 ...
随机推荐
- [BZOJ1023][SHOI2008]cactus仙人掌图 DP
题目链接 套路就是先考虑一般的树上做法.求直径的dp的做法大家应该都会吧. 那么设\(dp[i]\)表示\(i\)的子树中的点到\(i\)的最大距离. 在dp的过程中 \[ ans=\max\{dp[ ...
- Codefroces 958C2 - Encryption (medium) 区间dp
转自:https://www.cnblogs.com/widsom/p/8857777.html 略有修改 题目大意: n个数,划分为k段,每一段的和mod p,求出每一段的并相加,求最大是多 ...
- webRTC脱坑笔记(一)— 初识webRTC
webRTC概述 WebRTC--- `Web browsers with Real-Time Communications (RTC)` WebRTC是一个开源项目,可以在`Web`和本机应用程序中 ...
- Vue.js----更换头像不实时更新问题
原因 导致问题的原因是缓存造成的,因为你图片变了但是读取头像的地址还会没有变化的 解决思路 所以解决的思路就是上传之后让图片地址改变,那么我们就可以在上传的时候给地址加上一个时间戳那么久可一达到目的了 ...
- notepad++ 安装 hex_editor 十六进制查看插件
1.到 https://github.com/chcg/NPP_HexEdit/releases 去下载相应的文件,注意32位和64位的区别 2.点击notepad++的设置--->导入--&g ...
- boost asio scalability and multithreading
A library such as Boost.Asio is typically used to achieve greater efficiency. With no need to wait f ...
- ssm框架错误展示-1
1.xmlParse错误+找不到bean ,一般会出现在导入别的地方拷来的项目时发生,报了以下错误: 查看自己的项目配置文件,发现spring的配置文件和sql映射xml文件都有个黄颜色的感叹号,鼠标 ...
- python使用开源图片识别第三方库tesseract
详细安装博客:https://blog.csdn.net/luanyongli/article/details/81385284 第一步tesseract-ocr的安装如果不会请参照:https:// ...
- css控制显示超出多少行以后开始出现省略号的写法
display: -webkit-box; display: -moz-box; text-overflow: -o-ellipsis-lastline; text-overflow: ellipsi ...
- 关于C++中nothrow的某某某
前言 在学习C++中new的种种用法时,在operator new的其中一个重载版本中看一个参数nothrow,想弄清楚到底是什么意思?nothrow顾名思义,就是不抛出的意思嘛!不抛出啥,在C++中 ...