1. unique()
  2. numpy.tolist()
  3. collections.defaultdict()
  4. 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中函数用法的更多相关文章

  1. Python回调函数用法实例详解

    本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...

  2. python 中@ 的用法【转】

    这只是我的个人理解: 在Python的函数中偶尔会看到函数定义的上一行有@functionName的修饰,当解释器读到@的这样的修饰符之后,会先解析@后的内容,直接就把@下一行的函数或者类作为@后边的 ...

  3. python之函数用法setdefault()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法setdefault() #D.get(k,d) #说明:k在D中,则返回 D[K], ...

  4. python之函数用法fromkeys()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法fromkeys() #fromkeys() #说明:用于创建一个新字典,以序列seq ...

  5. python之函数用法get()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法get() #http://www.runoob.com/python/att-dic ...

  6. python之函数用法isupper()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法isupper() #http://www.runoob.com/python/att ...

  7. Python中函数的参数传递与可变长参数

    转自旭东的博客原文 Python中函数的参数传递与可变长参数 Python中传递参数有以下几种类型: (1)像C++一样的默认缺省函数 (2)根据参数名传参数 (3)可变长度参数 示例如下: (1)默 ...

  8. python之函数用法__getitem__()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法__getitem__() #http://www.cnblogs.com/hongf ...

  9. python之函数用法__setattr__

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法__setattr__ #http://www.cnblogs.com/hongfei ...

随机推荐

  1. springboot上传excel到oss

    参考:https://blog.csdn.net/qq_34864038/article/details/80239320 https://blog.csdn.net/qq_27319683/arti ...

  2. vagrant up ----失败 问题解决

    命令行启动提示信息 there was an error while executing `vboxmanage`, a cli used by vagrant for controlling vir ...

  3. 【NLP新闻-2013.06.16】Representative Reviewing

    英语原文地址:http://nlp.hivefire.com/articles/share/40221/ 注:本人翻译NLP新闻只为学习专业英语和扩展视野,如果翻译的不好,请谅解! (实在是读不大懂, ...

  4. 【8.0.0_r4】AMS架构与流程分析

    AMS主要用来管理应用程序的生命周期,以及其核心组件,包括Activity,Service,Provider,Broadcast,Task等 之前整体架构如下图(O上已经废弃) 新的架构比较直接,简化 ...

  5. SQL_2008安装教程(完整版)

    Win 7 win xp系统中SQL2008安装注意事项一:SQL2008 镜像下载地址 http://download.microsoft.com/download/4/C/4/4C402E48-0 ...

  6. DZY Loves Math

    DZY Loves Math 对于正整数 $n$,定义 $f(n)$ 为 $n$ 所含质因子的最大幂指数. 例如 $f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007)=1, ...

  7. qbxt Day2 on 19-7-25

    qbxt Day2 on 19-7-25 --TGZCBY 上午 1. 矩阵乘法在图论上的应用 有的时候图论的转移方程可以用dp的方式转移 特别是两个数的乘积求和的时候 比如邻接矩阵中f[i][j]表 ...

  8. linux文本查看与搜索

    1. cat-->全文本显示 cat file #全文本显示在终端 cat -n file #显示全文本,并显示行号 cat file1 file2 >file3 #将file1 file ...

  9. Engineer Assignment(暴力+状压dp)

    题意: n个工程,m个研究员,每个工程需要Ci个领域(X1,X2..Xci)的研究员 ,每个研究员会Di个不同的领域(X1,X2..Xdi),要完成一个工程必须使得分配给这个工程的研究员覆盖了这个工程 ...

  10. VS2012修改代码时会把后面的覆盖

    vs2012修改代码时会把后面的覆盖,并且鼠标指针变成灰色竖方块 解决:按一下键盘上的Insert键