美文网首页
2018-05-21

2018-05-21

作者: 逃淘桃 | 来源:发表于2018-05-21 15:59 被阅读0次

    theano


    • theano.tensor.matrix(name=None,dtype=config.floatX):返回一个2维ndarry变量。
    • theano.tensor.matrix(name=None,dtype=config.floatX):返回一个3维的ndarry变量。
    • theano.tensor里有scalar(一个数据点),vector(向量),matrix(矩阵),tensor3(三维矩阵),tensor4(四维矩阵)。

    python


    1. python中的*args**kwargs
      首先我们应该知道,并不是必须写成*args**kwargs,变量前的*是必须的,可以写成*var**vars,而写成*args**kwargs只是一个通俗的命名约定。
      *args**kwargs主要用于函数定义,可以将不定量的参数传递给一个函数。
      *args用来发送一个非键值对的可变数量的参数列表给一个函数。
      **kwargs允许将不定长度的键值对作为参数传递给一个函数,如果想在一个函数里处理带有名字的参数,应该使用**kwargs

    2.python中内建函数isinstance的用法以及与type的区别
    语法:isinstance(object, classinfo);用来判断对象类型。其中,object是变量,classinfo是类型即(tuple,dict,int,float,list,bool等)和class类,如参数object是classinfo类的实例,或者object是classinfo类的子类的一个实例,返回True,若object不是给定类型的实例,则返回结果总是False。若classinfo不是一种数据类型或者由数据类型构成的元组,将引发一个TypeError异常。
    isinstance和type都可用来判断对象类型,但是对于一个class类的子类对象类型判断,type就不行,而isinstance可以。

    3.python中子类调用父类的方法,super().__init__():

      形式:
    class A(object):
      def __init__(self, xing, gender):
        self.namea = 'aaa'
        self.xing = xing
        self.gender = gender
      def funca(self):
        print("function a :%s" %self.namea)
    class B(A):
      def __init__(self, xing, age):
        super(B,self).__init__(xing, age)
          self.nameb = 'bbb'
          self.xing = xing.upper()
          self.age = age + 1
      def funcb(self):
        print("function b: %s"%self.nameb)
    
    b = B("lin", "man", 22)
    
    print(b.nameb)
    --->>bbb
    
    print(b.namea)
    ---->>aaa
    
    print(b.xing)
    --->>LIN
    
    print(b.age)
    --->>23
    
    b.funcb()
    --->>function b: bbb
    b.funca()
    --->>function a: aaa
    
    print(b.gender)
    --->>22
    

    通过验证,可以得出以下结论:

    • B类可以继承A类,在B类的基础上可以调用A类所有的方法,代码最后的b.funcb()b.funca()可以实现。
    • A,B同时拥有__init__,B会改写A中的__init__方法,A类的方法失效。
    • super函数可以调用A父类中的属性,如namea,xing,当B中有同名属性时覆盖A中的同名属性,但调用函数时总是先查找它自身的定义,如果没有定义,则顺着继承链向上查找,直到在某个父类中找到为止。
    • B类__init__参数需大于或者等于A父类的__init__方法,因为super初试化了,参数量为父类参数量。
    • super函数原理:super().__init__(***,***)中的***参数为类B中输入的参数,但与类A中参数名相对应。
      4.python中强大的format函数
      自从python2.6开始,新增了一种格式化字符串的函数str.format(),次函数可以快速的处理各种字符串。
      语法:它用{}来代替%
    >>>"{} {}".format("hello", "world")  #不设置指定位置,按默认顺序
    'hello world'
    
    >>>"{0} {1}".format("hello", "word")  #设置指定位置
    'hello world'
    
    >>>"{1} {0} {1}".format("hello","world")  #设置指定位置
    'world hello world'
    

    也可以设置参数:

    print("这是一个: {test_name},作者是:{author}".format(test_name="test", author="sherry"))
    --->>这是一个:test,作者是:sherry
    

    也可以通过列表索引设置参数

    my_list = ['test', 'sherry']
    print("这是一个:{0[0]},作者是:{0[1]}".format(my_list))  #"0"是必须的
    --->>这是一个:test,作者是:sherry
    

    Numpy

    1. numpy.prob:
      numpy.prob(a, axis=None, dtype=None, out=None, keepdims=<class 'numpy._globals._NoValue'>)
      返回给定轴上的数组元素的乘积。
      Notes:
      当使用整数类型时,算术是模块化的,在溢出时不会产生错误,如:
    x = np.array([536870910, 536870910, 536870910, 536870910])
    np.prod(x)
    --->>16
    

    空阵列的prod是元素1:

    np.prod([])
    --->>1.0
    

    Examples:
    默认情况下,计算所有的元素的乘积:

    import numpy as np
    print(np.prod([1., 2.]))
    --->>2.0
    

    即使输入数组是二维的:

    a = np.prod([[1., 2.], [3., 4.]])
    print(a)
    --->>24.0
    

    但是我们也可以指定要乘以的轴:

    b = np.prod([[1., 2.], [3., 4.]], axis=1)
    print(b)
    --->>array([2., 12.])
    

    如果x的类型是无符号的,那么输出类型是无符号整数:

    x = np.array([1, 2, 3], dtype=np.uint8)
    print(np.prod(x).dtype == np.uint)
    --->>True
    

    如果X是有符号整数类型,那么输出类型是默认的有符号整数:

    x = np.array([1, 2, 3], dtype=np.int8)
    print(np.prod(x).dtype == int)
    --->>True
    

    相关文章

      网友评论

          本文标题:2018-05-21

          本文链接:https://www.haomeiwen.com/subject/tkofjftx.html