调试Bug

2021-11-30  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读