首先,对不起,如果它不是发布这个问题的地方,我知道它与我用来编程的软件比编程本身更相关,但我想这里有人可能知道答案。
我经常使用 PyCharm(当前版本为 2016.1.2)及其有用的调试器在 Python 中编码。我目前正在将 Matlab 代码翻译成 Python 代码,我经常需要比较函数的输出。在 PyCharm 的调试器中,我可以在变量空间中右键单击一个变量,然后按“以数组形式查看”。这为我提供了一个很好的数组网格视图(Excel 类型的网格),我可以轻松地与 Matlab 中的数组进行比较,后者也可以显示在网格中。但是,有时,此选项在 PyCharm 中不起作用,我不知道为什么!例如,我有一个 numpy.ndarray 类型的变量,其中包含 137 x 60 个浮点数,当我按下 « view as array » 时,它显示窗口,但不是显示网格,而是显示 « Nothing to show »。奇怪的是,我尝试复制另一个变量中的前 30 行,这次 PyCharm 能够向我显示与这个新变量关联的网格。通常,这个数字似乎不是问题。我试图显示一个包含浮点数的 500 x 500 数组,它做得很好。
如果有人能告诉我为什么会发生这种情况以及我如何克服这个问题,我会很高兴。另外,如果有人有另一种以优雅的方式在 Python 中显示矩阵的方法,我也会采用它,因为它也可以帮助我完成我的任务!
谢谢!
我必须将一些Matlab代码翻译成Python 3,我经常遇到表单start:step:stop的范围.当这些参数都是整数时,我很容易用np.arange()来翻译这个命令,但是当一些参数是浮点数时,尤其是step参数,我在Python中得不到相同的输出.例如,
7:8 %In Matlab
7 8
Run Code Online (Sandbox Code Playgroud)
如果我想在Python中翻译它,我只需使用:
np.arange(7,8+1)
array([7, 8])
Run Code Online (Sandbox Code Playgroud)
但如果我有,让我们说:
7:0.3:8 %In Matlab
7.0000 7.3000 7.6000 7.9000
Run Code Online (Sandbox Code Playgroud)
我无法使用相同的逻辑翻译它:
np.arange(7, 8+0.3, 0.3)
array([ 7. , 7.3, 7.6, 7.9, 8.2])
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我不能将步骤添加到stop参数.
但是,如果我有:
7:0.2:8 %In Matlab
7.0000 7.2000 7.4000 7.6000 7.8000 8.0000
Run Code Online (Sandbox Code Playgroud)
我可以用我的第一个想法:
np.arange(7,8+0.2,0.2)
array([ 7. , 7.2, 7.4, 7.6, 7.8, 8. ])
Run Code Online (Sandbox Code Playgroud)
我的问题来自于我没有翻译像这样的硬编码线.实际上,这些范围的每个参数都可以根据我正在处理的函数的输入而改变.因此,我有时可以将0.2或0.3作为步长参数.所以基本上,你们知道是否有另一个numpy/scipy或者其他任何真正像Matlab系列一样的函数,或者我必须自己添加一些代码来确保我的Python范围最终与Matlab的?
谢谢!