Numpy Array summing with weights

匿名 (未验证) 提交于 2019-12-03 02:30:02

问题:

I have a two dimensional numpy array.

Each row is three elements long and is an integer 0-3. This represents a 6 bit integer, with each cell representing two bits, in order.

I'm trying to transform them into the full integer.

E.g.

for i in range(len(myarray)):   myarray[i] = myarray[i][0] * 16 + myarray[i][1] * 4 + myarray[i][2] 

E.g. I'm trying to sum each row but according to a certain weight vector of [16,4,1].

What is the most elegant way to do this? I'm thinking I have to do some sort of dot product followed by a sum, but I'm not 100% confident where to do the dot.

回答1:

The dot product inclination is correct, and that includes the sum you need. So, to get the sum of the products of the elements of a target array and a set of weights:

>>> a = np.array([[0,1,2],[2,2,3]]) >>> a array([[0, 1, 2],        [2, 2, 3]]) >>> weights = np.array([16,4,2]) >>> np.dot(a,weights) array([ 8, 46]) 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!