What is the pythonic way to calculate dot product?

后端 未结 10 885
无人及你
无人及你 2020-12-08 00:39

I have two lists, one is named as A, another is named as B. Each element in A is a triple, and each element in B is just an number. I would like to calculate the result defi

相关标签:
10条回答
  • 2020-12-08 01:21

    My favorite Pythonic dot product is:

    sum([i*j for (i, j) in zip(list1, list2)])
    


    So for your case we could do:

    sum([i*j for (i, j) in zip([K[0] for K in A], B)])
    
    0 讨论(0)
  • 2020-12-08 01:24

    Probably the most Pythonic way for this kind of thing is to use numpy. ;-)

    0 讨论(0)
  • 2020-12-08 01:26
    >>> X = [2,3,5,7,11]
    >>> Y = [13,17,19,23,29]
    >>> dot = lambda X, Y: sum(map(lambda x, y: x * y, X, Y))
    >>> dot(X, Y)
    652
    

    And that's it.

    0 讨论(0)
  • 2020-12-08 01:29

    Using more_itertools, a third-party library that implements the dotproduct itertools recipe:

    import more_itertools as mit
    
    
    a = [1, 2, 3]
    b = [7, 8, 9]
    
    mit.dotproduct(a, b)
    # 50
    
    0 讨论(0)
提交回复
热议问题