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. Python3.5-20190519-廖老师-自我笔记-面向对象中slots变量--@property的使用

    python是动态语言,可以随时随地给实例对象添加属性和方法,但是我们想限制属性的名字,可以使用__slots__特殊变量来限制 使用__slots__要注意,__slots__定义的属性仅对当前类实 ...

  2. Ubuntu分区小知识与分区方案

    Most PC operating systems still work with an ancient disk partition scheme that historically makes d ...

  3. 浅谈SAP CRM和Hybris Commerce里的价格架构折扣

    最近Jerry做了一个和价格折扣相关的原型项目,把学到的知识记录下来,以备将来查阅. 在这个原型项目里,我们用React-Native开发了一个移动应用,用户可以在手机上浏览SAP Hybris Co ...

  4. hihocoder 1014: Trie树(Trie树模板题)

    题目链接 #include<bits/stdc++.h> using namespace std; ; struct T { int num; T* next[]; T() { num=; ...

  5. Stream学习笔记

    1. 创建Stream实例的五种方式 @Test public void test1(){ // 创建Stream对象的第一种方式 List<String> list = Lists.ne ...

  6. MYSQL索引优化之单表示例

    1. 创建表 CREATE TABLE IF NOT EXISTS `article` ( `id` BIGINT(10) NOT NULL AUTO_INCREMENT, `author_id` I ...

  7. JS中关于构造函数、原型链、prototype、constructor、instanceof、__proto__属性

    在Javascript不存在类(Class)的概念,javascript中不是基于类的,而是通过构造函数(constructor)和原型链(prototype chains)实现的.但是在ES6中引入 ...

  8. vue父组件异步数据子组件接收遇到的坑

    大家都知道父组件给子组件传值,子组件给父组件传值,两者通信并不难,官网上也有给案例,但是如果子组件想拿到父组件的异步数据,常规的写法是不行的,下面我记录我常用的两者写法: 方法1: 子组件用v-if, ...

  9. cf 811c Vladik and Memorable Trip

    原题链接:http://codeforces.com/contest/811/problem/C 题意:将数组中的连续数字连成若干个“线段”(或者不连),其实就是区间.区间必须满足对于其中的任意数字, ...

  10. Linux0.11内核源码——内核态线程(进程)切换的实现

    以fork()函数为例,分析内核态进程切换的实现 首先在用户态的某个进程中执行了fork()函数 fork引发中断,切入内核,内核栈绑定用户栈 首先分析五段论中的第一段: 中断入口:先把相关寄存器压栈 ...