调试Bug

作者: 国宝级初学者 | 来源:发表于2021-11-30 09:53 被阅读0次

    1. 数组初始化

    A = np.zeros(n_symb)

    初始化的数组,当计算时,结果的值是复数,但是赋值给A的时候,却是实数,需要如下初始化

    np.zeros(n_symb, dtype = complex)

    定义初始值记为复数类型,这样赋值就正常

    2. 获取数组行列的大小

    1.普通数组,以二维数组为例:

    # 行的大小,row = len(arr)

    # 列的大小,col = len(arr[0])

    其他维度推理都是  len(arr[i])

    2.numpy形成的数组,这个时候就要用到shape函数

    一维长度:arr.shape[0]

    二维长度:arr.shape[1]

    以此类推:arr.shape[i]

    3. python中 numpy转list list 转numpy

    list to numpy

    import numpy as np

    a=[1,2]

    b=np.array(a)

    numpy to list

    import numpy as np

    a=np.zero(1,1)

    a.tolist()

    4. 数组,字典

    通常使用数组表示多维向量会比较好,而不是使用字典来分别索引各个维度

    可以表示为

    a[0][3]

    索引到对应的元素

    单维向量可以转换成一维向量,来代入别的函数,方便后续循环

    slot_re = dl_slot_re.reshape((1, n_re_in_slot))

    这样,代入下一个函数,slot_re 的维度是 1 * n_re_in_slot的ndarray,而dl_slot_re则是n_re_in_slot的array

    5. 画图不响应

    首先,

    import matplotlib

    matplotlib.use('agg')

    可以让前台不出图,节省资源,从而可以画很多图而不内存溢出,如果调试状态,需要出图时,则需要打开他

    另外

    fig = plt.figure(figsize=(24, 8))

    会导致调试状态下,figure未响应,需要改为

    plt.figure(figsize=(24, 8))

    6. 插值

    import numpy as np

    from scipy import interpolate

    import pylab as pl

    x=np.linspace(0,10,11)

    y=np.sin(x)

    xnew=np.linspace(0,10,101)

    pl.plot(x,y,"ro")

    for kind in ["nearest","zero","slinear","quadratic","cubic"]:

       f=interpolate.interp1d(x,y,kind=kind)

        # ‘slinear’, ‘quadratic’ and ‘cubic’ refer to a spline interpolation of first, second or third order)    

        ynew=f(xnew)

        pl.plot(xnew,ynew,label=str(kind))

    pl.legend(loc="lower right")

    pl.show()

    7. 数组

    Numpy的主要数据类型是ndarray,即多维数组。它有以下几个属性:

    ndarray.ndim:数组的维数

    ndarray.shape:数组每一维的大小

    ndarray.size:数组中全部元素的数量

    ndarray.dtype:数组中元素的类型(numpy.int32, numpy.int16, and numpy.float64等)

    ndarray.itemsize:每个元素占几个字节

    np.fliplr,输入参数至少是2维数组

    8 Pycharm单步调试时没有响应的问题

    在使用Pycharm调试程序时,发现运行不报错,但是加断点调试程序时,显示

    Backend Qt5Agg is interactive backend. Turning interactive mode on. 而且不能继续调试。

    解决办法 :

    File

    Settings

    Build,Exrcution

    Python Debugger

    Genent compatible这个选项打勾,然后就可以使用了。

    9. 保存矩阵到文件

    np.savetxt('my_matix_1.txt',CeType1WienerCoeff[0,:,:],fmt='%f',delimiter=', ',newline='\r')

    10. 界面上插入使用图片

    使用qrc文件

    qrc文件本身是类似xml格式的文件,可以使用文本编辑

    <!DOCTYPE RCC>

    <RCC version="1.0">

    <qresource>

    <file alias="R-C.png">R-C.png</file>

    </qresource>

    </RCC>

    目录使用相对路径下的同级目录,将其编译成py文件后,从界面调用puUIC生成的py中,即可import他

    pyrcc5.exe -o image.py .\image.qrc

    如果不生成,则自动生成的界面py中import不到该图标

    11. PyUIC时出现SyntaxError:invalid syntax

    很有可能是在填写PyUIC路径的时候填的是python的路径(在参数位置应填写python命令)

    填写参数的时候却写着shell commands的命令

    导致python无法识别这个命令

    把命令改成    -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py

    相关文章

      网友评论

          本文标题:调试Bug

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