http://www.bizhi88.com/bizhi/102085.html
ufunc是universal function的缩写,它是一种能对数组的每个元素进行操作的函数。NumPy内置的许 多ufunc函数都是在C语言级别实现的,因此它们的计算速度非常快。让我们来看一个例子:
sin函数对x内的每一个元素进行计算
先用linspace产生一个从0到2*PI的等距离的10个数,然后将其传递给sin函数,由于np.sin是一个ufunc函数,因此它对x中的每个元素求正弦值,然后将结果返回,并且赋值给y。计算之后x中的值并 没有改变,而是新创建了一个数组保存结果。如果我们希望将sin函数所计算的结果直接覆盖到数组x上 去的话,可以将要被覆盖的数组作为第二个参数传递给ufunc函数。例如:
sin函数的第二个参数也是x,那么它所做的事情就是对x中的每给值求正弦值,并且把结果保存到x中的对应的位置中。此时函数的返回值仍然是整个计算的结果,只不过它就是x,因此两个变量的id是相同的(变量t和变量x指向同一块内存区域)。
就像这样的一种使用法
import time
import math
import numpy as np
x = [i*0.001 for i in range(1000000)]
start = time.clock()
for i, t in enumerate(x):
x[i] = math.sin(t)
print("math.sin:", time.clock()-start)
x = [i*0.001 for i in range(1000000)]
x = np.array(x)
start = time.clock()
np.sin(x, x)
print("numpy.sin:", time.clock()-start)
这里的代码就卡住了,我时间模块写错了
今天很晚了,程序也报错了.去修了~