#单行注释
'''
多行注释
多行注释
多行注释
'''
#a.ndim 输出数组的维数;
#a.shape 输出数组的形式(几行,几列)
#copy() 复制数组
#a*2 数组中每个元素乘以2
#[1,2]*2 数组将变成4个
#a**2 a的平方
#[1,2]**2 unsuported operand type
#数组访问。修建异常值。处理不存在的值。
#clip() 超出某区间边界的部分修剪掉
#mean() 均值
#处理不存在的值
import numpy as np
a = np.array([0,1,2,3,4,5])
b = a.reshape((3,2))#transport a array to b. change b same to a.
c = a.reshape((3,2)).copy()#change c no change a.they are depended.
a[a>4] = 2 #修剪异常值
d = a.clip(0,2)#d 中最大为2
e = np.array([1,2,np.NAN,3,4])## np.isnan(e) 来判定数组是否有不合理值
f = e[~np.isnan(e)] ## e[~np.isnan(e)]输出合理的数
m = np.mean(e[~np.isnan(e)]) ##均值。
##应该时常考虑如何将数组元素的循环处理冲Python中移到高度优化的NumPy..SciPy扩展函数中(验证否定)
#example 求1~1000的所有平方和
import timeit
normal_py_sec = timeit.timeit('sum(x*x for x in xrange(1000))',
number = 1000)
naive_np_sec = timeit.timeit('sum(na*na)',
setup="import numpy as np;na=np.arange(1000)",
number = 1000)
good_np_sec = timeit.timeit('na.dot(na)',
setup="import numpy as np; na=np.arange(1000)",
number = 1000)
print("Normal Python :%f sec"%normal_py_sec)
print("Naive Python :%f sec"%naive_np_sec)
print("Good NumPy: %f sec"%good_np_sec)
'''
Normal Python :0.081011 sec
Naive Python :0.384903 sec
Good NumPy: 0.013812 sec 经验证,已经没有多大差别了。用
'''