考虑带有科学数据的文本文件,例如:
5.787037037037037063e-02 2.048402977658663748e-01
1.157407407407407413e-01 4.021264347118673754e-01
1.736111111111111049e-01 5.782032163406526371e-01
Run Code Online (Sandbox Code Playgroud)
如何轻松删除,例如,每隔一行,或文件中每10行中的9行?例如是否可以使用bash脚本?
背景:文件非常大,但我需要更少的数据来绘制.请注意,我使用的是Ubuntu/Linux.
这件事一直困扰着我关于Matlab的事情.我理解为什么数组从1开始而不是0开始,就像在任何其他编程语言中一样,但为什么!= ~=在Matlab中呢?
我刚开始学习SciPy并且正在努力学习最基本的功能.
考虑以下标准向量:
In [6]: W=array([[1],[2]])
In [7]: print W
[[1]
[2]]
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,这应该是标准2x1数学向量的SciPy表示,如下所示:
(1)
(2)
Run Code Online (Sandbox Code Playgroud)
这个向量的点积应该是1*1+2*2=5.但是,这在SciPy中不起作用:
In [16]: dot(W, W)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/home/ingo/<ipython-input-16-961b62a82495> in <module>()
----> 1 dot(W, W)
ValueError: objects are not aligned
Run Code Online (Sandbox Code Playgroud)
请注意以下工作.(1 2)如果我没有弄错的话,这应该是表格的矢量.
In [9]: V=array([1,2])
In [10]: print V
[1 2]
In [11]: dot(V, V)
Out[11]: 5
Run Code Online (Sandbox Code Playgroud)
我的误解是什么?我究竟做错了什么?
对于科学应用,我需要输出非常精确的数字,所以我必须打印15个有效数字.这里已经有关于此主题的问题,但它们都涉及截断数字而不是打印更多数字.
我意识到该print函数将输入float转换为10个字符string.此外,我开始意识到这个decimal模块,但这不符合我的需要.
所以问题是,如何轻松打印我的花车的可变数量的显着数字,我需要显示超过10?
考虑以下向量(基本上是2x1矩阵):
a = sc.array([[1], [2], [3]])
>>> a
[[1]
[2]
[3]]
b = sc.array([[4], [5], [6]])
>>> b
[[4]
[5]
[6]]
Run Code Online (Sandbox Code Playgroud)
可以使用计算这些载体的叉积numpy.cross().为什么这不起作用:
import numpy as np
np.cross(a, b)
ValueError: incompatible dimensions for cross product
(dimension must be 2 or 3)
Run Code Online (Sandbox Code Playgroud)
但是这样做了吗?
np.cross(a.T, b.T)
[[-3 6 -3]]
Run Code Online (Sandbox Code Playgroud) 我创建了一个gtkMenu使用gtk.Menu(),附加了几个项目,现在我想删除一些菜单项.我怎样才能做到这一点?
我想要一个需要一段时间的操作的等待栏.这是我的代码:
h = waitbar(0,'Please wait...');
for i=1:counterend
waitbar(i/waitbarcounter)
Atemp = At+i*step;
handle = @(M) 1/M^2*((2/(gamma+1))*(1+(gamma-1)*M^2/2))^((gamma+1)/(gamma-1))-(Atemp/At)^2;
Mach = fzero(handle, 5);
Aplot(i) = Atemp/At;
Tplot(i) = Tc / (1+(gamma-1)*Mach^2/2);
Mplot(i) = Mach;
plot(Aplot, Tplot)
end
close(h)
Run Code Online (Sandbox Code Playgroud)
Matlab给出的错误是:
??? 在249时使用==> waitbar时出错.等待条的
参数不正确
经过调查,我确信必须发生此错误,因为循环中的周围代码.
注意:没有等待栏,循环工作正常.
当使用nose包测试scipy时scipy.test(),测试在Ubuntu 12.04下失败,安装了所有的vanilla软件包.我是否必须担心,如果是,我该如何解决这个问题?
In [8]: scipy.test()
Running unit tests for scipy
NumPy version 1.5.1
NumPy is installed in /usr/lib/python2.7/dist-packages/numpy
SciPy version 0.9.0
SciPy is installed in /usr/lib/python2.7/dist-packages/scipy
Python version 2.7.2+ (default, Jan 21 2012, 23:31:34) [GCC 4.6.2]
nose version 1.1.2
[................]
======================================================================
FAIL: test_io.test_imread
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/nose/case.py", line 197, in runTest
self.test(*self.arg)
File "/usr/lib/python2.7/dist-packages/numpy/testing/decorators.py", line 146, in skipper_func
return f(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/scipy/ndimage/tests/test_io.py", line 16, in test_imread
assert_array_equal(img.shape, (300, 420, 3))
File "/usr/lib/python2.7/dist-packages/numpy/testing/utils.py", line …Run Code Online (Sandbox Code Playgroud) 对于一个项目,我们必须编写一个Matlab模拟,并希望将工作分成几个人.由于涉及一些非专业程序员,我们正在处理一个简短的项目,我们希望保持简单并使用Dropbox,因此不涉及任何版本管理系统.
有什么可能做到这一点?我们如何最好地分割功能?你如何将程序分成几个文件?