希望更简单地将二维矩形数组乘以一维常数向量
wish to more simply multiply a 2D rectangular array by a 1D constant vector
我在名为
拉丁语:
lat=range(90,-91,-1)
latcos=numpy.cos(numpy.deg2rad(lat))
rect_array=numpy.zeros(181,361)
#comment: not shown here but rect_array gets assigned some interesting values.
我希望将 rect_array 的每一列(包含 181 个元素)逐个元素乘以 latcos,并对 381 列中的每一列执行此操作。
ipython 喜欢单列的这种语法
new_partial_rect_array=latcos*rect_array[0:,0]
并且喜欢这种语法来处理整个数组
for i in range(361): New_rect_array[0:,i]=latcos*rect_array[0:,i]
但是python不喜欢
New_rect_array=latcos*rect_array
ValueError: 操作数无法与形状 (181,) (181,361) 一起广播
必须有一种更简单的方法可以在没有 for 语句的情况下对整个矩形矩阵(每列)进行稍后的乘法运算,但我对 python 还不够熟悉,还不知道该怎么做.
提前致谢
好的 - 很简单,有点像:
numpy.transpose(numpy.transpose(rect_array) * latcos)
我以为我可以只用一个转置,但似乎我需要两个。
我在名为 拉丁语:
lat=range(90,-91,-1)
latcos=numpy.cos(numpy.deg2rad(lat))
rect_array=numpy.zeros(181,361)
#comment: not shown here but rect_array gets assigned some interesting values.
我希望将 rect_array 的每一列(包含 181 个元素)逐个元素乘以 latcos,并对 381 列中的每一列执行此操作。
ipython 喜欢单列的这种语法
new_partial_rect_array=latcos*rect_array[0:,0]
并且喜欢这种语法来处理整个数组
for i in range(361): New_rect_array[0:,i]=latcos*rect_array[0:,i]
但是python不喜欢
New_rect_array=latcos*rect_array
ValueError: 操作数无法与形状 (181,) (181,361) 一起广播
必须有一种更简单的方法可以在没有 for 语句的情况下对整个矩形矩阵(每列)进行稍后的乘法运算,但我对 python 还不够熟悉,还不知道该怎么做.
提前致谢
好的 - 很简单,有点像:
numpy.transpose(numpy.transpose(rect_array) * latcos)
我以为我可以只用一个转置,但似乎我需要两个。