《python科学技算》之Numpy 广播;ufunc函数的方法
1.Numpy包中的广播部分: ufunc 函数会对两个数组的对应元素计算,要求俩数组形状相同,如果不同会进行广播处理。 广播处理即所有数组的shape向维数最多数组看齐,低维通过前面加1看齐,如一维的(5,),与二维看齐后为(1,5);只有当某个轴长度相同或为1才能计算 当输入数组的某个轴长度为1时,沿此轴运算时都用第一组的值 Numpy提供了快速生成广播运算数组的ogrid对象 x,y=np.ogrid[:5,:5] 还有一个mgrid对象与此相似,但返回的是已经广播后的数组 ogrid[]内有两种写法: 始:终:步长 or 始:终:长度j 如果已经有了两个一维数组x,y: gy,gx=np.ix_(y,x) 注意此时y是0轴,x是1轴 2.ufunc函数的方法 这些方法只对两个输入一个输出的ufunc对象有效 <op>.reduce(array,axis=0,dtype=None) reduce()方法相当于沿着axis指定的轴对数组进行操作,将<op>运算符插入到沿axis的所有元素中: np.add.reduce([1,2,3]) #6 np.add.reduce([[1,2,3],[4,5,6]]) #[5,7,9], 默认axis=0,same with np.add([1,2,3],[4,5,6]) np.add.reduce([[1,2,3],[4,5,6]]