我很好奇正在运行的程序的进度,我打印了一些有关当前迭代的信息,例如:
for i = 1:N
...
...
msg = sprintf('Processed %d/%d', i, N);
display(msg)
end
Run Code Online (Sandbox Code Playgroud)
我不想在单独的行上打印进度,而是希望最后一行替换上一行.我不想用clc它来清除所有内容.
我知道'\b'可以清除最后一个字符(比如退格键),我可以创建一个带有for循环的函数,该函数清除项目直到前一个新行之前.但是有更好的方法吗?如果没有,我如何检查命令行中的最后一个字符是否是新行?
我正在寻找一个快速解决MATLAB的accumarraynumpy问题.的accumarray累积,其属于同一索引的数组的元素.一个例子:
a = np.arange(1,11)
# array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
accmap = np.array([0,1,0,0,0,1,1,2,2,1])
Run Code Online (Sandbox Code Playgroud)
结果应该是
array([13, 25, 17])
Run Code Online (Sandbox Code Playgroud)
到目前为止我做了什么:
我已经accum在这里的配方中尝试了这个功能很好但很慢.
accmap = np.repeat(np.arange(1000), 20)
a = np.random.randn(accmap.size)
%timeit accum(accmap, a, np.sum)
# 1 loops, best of 3: 293 ms per loop
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用这里应该更快工作的解决方案,但它无法正常工作:
accum_np(accmap, a)
# array([ 1., 2., 12., 13., 17., 10.])
Run Code Online (Sandbox Code Playgroud)
是否有内置的numpy功能可以像这样积累?还是其他任何建议?
让我们说我们有一个2乘2的子图,我们在里面绘制一些图形,如下所示:
subplot(1,2,1)
surf(peaks(20))
subplot(1,2,2)
surf(peaks(20))
Run Code Online (Sandbox Code Playgroud)

然后我们想要一个颜色条:
colorbar
Run Code Online (Sandbox Code Playgroud)

我不希望正确的数字在结果中吱吱作响.我们怎样才能将颜色条从最右边的图形中放入一行子图中并保持它们的大小不变?
注意:实际上,我需要它来绘制颜色条常见的图像,我想把它放在右边.为简单起见,我使用这个玩具示例.
我想将数组的元素与标量进行比较,并获得具有最大比较值的数组.那是我想打电话的
import numpy as np
np.max([1,2,3,4], 3)
Run Code Online (Sandbox Code Playgroud)
并希望得到
array([3,3,3,4])
Run Code Online (Sandbox Code Playgroud)
但我明白了
ValueError: 'axis' entry is out of bounds
Run Code Online (Sandbox Code Playgroud)
我跑的时候
np.max([[1,2,3,4], 3])
Run Code Online (Sandbox Code Playgroud)
我明白了
[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
这是列表中的两个元素之一,而不是我寻求的结果.有没有像其他内置函数一样快速的Numpy解决方案?
我想在我的函数循环期间打印一些调试语句,我使用IPython来调用该函数.让一个示例函数为:
def test_print():
import time
for i in range(5):
time.sleep(2)
print i, time.time()
Run Code Online (Sandbox Code Playgroud)
结果如下:
0 1372337149.84
1 1372337151.84
2 1372337153.85
3 1372337155.85
4 1372337157.85
Run Code Online (Sandbox Code Playgroud)
我希望每行都打印出来,然后等待2秒钟.但行为如下.我首先观察到:
0 1372337149.84
1
Run Code Online (Sandbox Code Playgroud)
然后,在2秒后,我观察1下一行的时间戳和id,即2.我终于看到了最后一张时间戳.我无法弄清楚为什么它表现得像这样,而不是一次一行.有什么想法吗?我是否需要特殊的刷新功能来打印等待打印的内容?
MathJax是一个非常好的javascript库,用于在html文件中编写LaTeX代码.我在Wordpress博客中使用它,当帖子在其实际地址中查看时,一切正常.但是,数学部分不会在Google阅读器中呈现,例如$ x =\lefty*(\ b + c right)$.
脚本加载了Wordpress标题中的语句,它不包含在RSS文件中.即使包含它,Google阅读器也会禁用脚本标记.
有没有一种正确的方法来解决这个问题,以便订阅者可以在他们的读者中看到很好的渲染公式?
我有一个代码的后续循环(计算直方图).我在Matlab写作.由于我是Matlab的新手,我不知道有任何更快的方法可以做到这一点.我现在正在写作
for i=1:size(b)
a(b(i)) = a(b(i)) + 1;
end
Run Code Online (Sandbox Code Playgroud)
有没有更快的方法来执行此操作,最好是那些不需要for循环的方法?
我正在尝试使用最初在MATLAB中的numpy重写函数.在MATLAB中有一个逻辑索引部分如下:
X = reshape(1:16, 4, 4).';
idx = [true, false, false, true];
X(idx, idx)
ans =
1 4
13 16
Run Code Online (Sandbox Code Playgroud)
当我尝试使它成为numpy时,我无法获得正确的索引:
X = np.arange(1, 17).reshape(4, 4)
idx = [True, False, False, True]
X[idx, idx]
# Output: array([6, 1, 1, 6])
Run Code Online (Sandbox Code Playgroud)
通过逻辑索引从矩阵中获取网格的正确方法是什么?