python 近期用到的基础知识汇总(三)

1.python __len__(self)详解

如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。要让 len() 函数工作正常,类必须提供一个特殊方法__len__(),它返回元素的个数。
例如,我们写一个 Students 类,把名字传进去:

class Students(object):
    def __init__(self, *args):
        self.names = args
    def __len__(self):
        return len(self.names)
只要正确实现了__len__()方法,就可以用len()函数返回Students实例的“长度”:

>>> ss = Students('Bob', 'Alice', 'Tim')
>>> print len(ss)
3

2.python中assertion异常

python中的assert是一种最简单的异常机制 
assert的基本语法是:"assert" expression1 ["," expression2]

expression1用于判断生成布尔值,当expression1为假的时候,则抛出异常,[]中的内容可选,即用户可以选择异常的提示值:

>>>a=23
>>>assert a==23
>>>a=a-1
>>>assert a==23
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError
>>>assert a==23 , "error1"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError: error1

3.python -- np.random.seed()

seed( ) 用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed( )值,则每次生成的随即数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。

所以seed总是跟random搭配使用。

运行一次seed( )就会产生一个数组(根据()里面的值,值相同产生相同的数组,值不同数组不相同),                                     np,random.random()就只要不重新运行seed( )是按之前得到数组,只要运行一次np,random.random()按顺序在数组中取一次值。

这正是对应了之前的认知其实python里 random产生的数一直是伪随机数。例如下面的例子:

num = 0
while(num<5):
    np.random.seed(2)
    print(np.random.random())
    num+=1

0.43599490214200376
0.43599490214200376
0.43599490214200376
0.43599490214200376
0.43599490214200376
--------------------- 
np.random.seed(2)
num = 0
while(num<5):
    print(np.random.random())
    num+=1

0.43599490214200376
0.025926231827891333
0.5496624778787091
0.4353223926182769
0.42036780208748903
--------------------- 

4.Python numpy函数:linspace()创建等差数列

linspace用于创建一个是等差数列的一维数组。它创建的数组元素的数据格式是浮点型。

常看到的一般是三个参数,分别是:起始值、终止值(默认包含自身)、数列个数

参考:https://blog.csdn.net/qq_28618765/article/details/78084170

5.np.meshgrid函数

功能:从一个坐标向量中返回一个坐标矩阵

参数:

x1,x2...,xn:数组,一维的数组代表网格的坐标。

indexing:{'xy','ij'},笛卡尔坐标'xy'或矩阵'ij'下标作为输出,默认的是笛卡尔坐标。

sparse:bool类型,如果为True,返回一个稀疏矩阵保存在内存中,默认是False。

copy:bool类型,如果是False,返回一个原始数组的视图保存在内存中,默认是True。如果,sparse和copy都为False,将有可能返回一个不连续的数组。而且,如果广播数组的元素超过一个,可以使用一个独立的内存。如果想要对这个数组进行写操作,请先拷贝这个数组。

返回值:x1,x2,....,xn:ndarray(numpy数组)

    nx,ny = (3,2)
    #从0开始到1结束,返回一个numpy数组,nx代表数组中元素的个数
    x = np.linspace(0,1,nx)
    #[ 0.   0.5  1. ]
    y = np.linspace(0,1,ny)
    # [0.  1.]
    xv,yv = np.meshgrid(x,y)
    '''
    xv
    [[ 0.   0.5  1. ]
     [ 0.   0.5  1. ]]
     yv
     [[ 0.  0.  0.]
      [ 1.  1.  1.]]
    '''

参考:https://blog.csdn.net/sinat_29957455/article/details/78825945

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值