06数组广播运算

# -*- coding: utf-8 -*-
import numpy as np

#广播运算: 用于数组的形状(也就是行列数不同时需要进行的计算)
# =============================================================================
#广播规则:
#1.各数组输入的维度可以不相等,但必须保证从左到右的维度值相等;
#2.如果对应维度值不相等,必须保证其中一个为1;
#3.各输入数组都向其shape(行列数)最长的数组看齐,shape中不足的部分都通过在前面加1.
# =============================================================================



#各输入数组的维度一致,对应维度值相等
arr6 = np.arange(12).reshape(3,4)
#print(arr6)
arr7 = np.arange(101,113).reshape(3,4)
#print(arr7)
#print("3*4的二维数组的矩阵运算(对应值相加):\n",arr6+arr7) #对应位置相运算

#各输入数组维度不一致,对应维度值不相等
arr8 = np.arange(60).reshape(5,4,3) #控制生成5个4行3列的数组
#print(arr8)
arr9 = np.arange(12).reshape(4,3)
print(arr9)
#print("维度不一致但是末尾的维度值一致(数组对应值相加): \n",arr8+arr9)

arr10 = np.arange(60).reshape(5,4,3)
#print(arr10)
arr11 = np.arange(4).reshape(4,1)
#print("4行1列的数组:\n",arr11)   #ndim()方法查看数组的维度是多少,也就是几行几列
#print('维数不一致,纬度值也不一致,但是纬度值至少有一个为1:\n',arr10+arr11) 
#在上例是对应列相加,也就是第一列上出现对应位置相加

#加1补齐
arr12 = np.array([5,15,25])
print(arr12)
print('arr12的维度自动补齐为(1,3): \n',arr12+arr9)  #arr12的一行三列数组会与arr9的每一行的对应列相加

 

posted @ 2019-03-28 00:01  Tony学长  阅读(256)  评论(0编辑  收藏  举报