zoukankan      html  css  js  c++  java
  • python中函数用法

    1. unique()
    2.  numpy.tolist()
    3. collections.defaultdict()
    4. random.sample()[]

     

    1、  unique():返回参数数组中所有不同的值,并按照从小到大排序

      可选参数:

      return_index=True: 返回新列表中的每个元素在原列表中第一次出现的索引值,因此元素个数与新列表中元素个数一样;

      return_inverse=True:返回原列表中的每个元素在新列表中出现的索引值,因此元素个数与原列表中元素个数一样。

     1 #一、元素为数值型数据
     2  
     3 import numpy as np  
     4  
     5 A = [1, 2, 5, 3, 4, 3]
     6 print ("原列表:", A)
     7 print ("================") 
     8  
     9 #返回任意的一个参数值
    10 a = np.unique(A)
    11 print ("新列表:", a)  
    12 print ("================") 
    13  
    14 #返回任意的两个参数值
    15 a, s = np.unique(A, return_index=True)
    16 print ("新列表:",a) 
    17 print ("return_index:",s) 
    18 print ("===============") 
    19  
    20 #返回全部三个参数值
    21 a, s, p = np.unique(A, return_index=True, return_inverse=True)
    22 print ("新列表:",a)  
    23 print ("return_index", s) 
    24 print ("return_inverse", p)
    View Code

    2、numpy tolist()将数组或者矩阵转换成列表;但是当矩阵是一维的时候,就不同了,所以一维矩阵经常会有tolist()[0]

     1 >>> from numpy import *
     2 >>> a1 = [[1,2,3],[4,5,6]] # a1是列表
     3 >>> a2 = array(a1) # 列表——>数组
     4 >>> a2
     5 array([[1, 2, 3],
     6        [4, 5, 6]])
     7 >>> a3 = mat(a1) # 列表——>矩阵
     8 >>> a3
     9 matrix([[1, 2, 3],
    10         [4, 5, 6]])
    11 >>> a4 = a2.tolist()  # 数组——>列表
    12 >>> a4
    13 [[1, 2, 3], [4, 5, 6]]
    14 >>> a5 = a3.tolist()  # 矩阵——>列表
    15 >>> a5
    16 [[1, 2, 3], [4, 5, 6]]
    17 >>> a4 == a5 
    18 True
    19 >>> a6 = mat(a2)   # 数组--> 矩阵
    20 >>> a6
    21 matrix([[1, 2, 3],
    22         [4, 5, 6]])
    23 >>> a6 == a3
    24 matrix([[ True,  True,  True],
    25         [ True,  True,  True]], dtype=bool)
    26 >>> a7 = array(a3)  # 矩阵--> 数组 
    27 >>> a7
    28 array([[1, 2, 3],
    29        [4, 5, 6]])
    30 >>> a7 == a2
    31 array([[ True,  True,  True],
    32        [ True,  True,  True]], dtype=bool)
    View Code

    当矩阵是一维的时候,就不同了,所以一维矩阵经常会有tolist()[0]

     1 >>> a1 =[1,2,3,4,5,6] # 列表
     2 >>> a2 = array(a1)   # 列表 --> 数组 
     3 >>> a2
     4 array([1, 2, 3, 4, 5, 6])
     5 >>> a3 = mat(a1)      #列表 ----> 矩阵
     6 >>> a3
     7 matrix([[1, 2, 3, 4, 5, 6]])
     8 >>> a4 = a3.tolist()   #矩阵 ---> 列表
     9 >>> a4
    10 [[1, 2, 3, 4, 5, 6]]  # 注意!!有不同  
    11 >>> a1 == a4
    12 False
    13 >>> a8 = a3.tolist()[0]   #矩阵 ---> 列表  
    14 >>> a8
    15 [1, 2, 3, 4, 5, 6]  # 注意!!有不同 
    16 >>> a1 == a8
    17 True
    18 >>> a5 = a2.tolist()   # 数组 ---> 列表
    19 >>> a5
    20 [1, 2, 3, 4, 5, 6]
    21 >>> a5 == a1
    22 True
    23 >>> a6 = mat(a2)   # 数组 ---> 矩阵  
    24 >>> a6
    25 matrix([[1, 2, 3, 4, 5, 6]])
    26 >>> a6 == a3
    27 matrix([[ True,  True,  True,  True,  True,  True]], dtype=bool)
    28 >>> a7 = array(a3)  # 矩阵 ---> 数组 
    29 >>> a7
    30 array([[1, 2, 3, 4, 5, 6]])
    31 >>> a7 == a2
    32 array([[ True,  True,  True,  True,  True,  True]], dtype=bool)
    View Code

    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]      
    View Code
    跟range相结合,在指定范围内获取一定长度的数据,这个用起来就比较灵活,代码如下:
    rs = random.sample(range(0, 9), 4)
    print(rs)
    
    
    》》》[2, 6, 0, 4]
    View Code


  • 相关阅读:
    DBA 职责及日常工作职责
    mysql 语句笔记
    学习Groovy — 闭包
    linux 命令: 网络和进程
    linux命令: rm命令
    Pro Git-- 跟踪分支
    Redis Tutorial
    linux 命令--文件操作
    分库分表的几种常见形式
    乐观锁与悲观锁
  • 原文地址:https://www.cnblogs.com/spp666/p/11551138.html
Copyright © 2011-2022 走看看