两个不同大小的numpy矩阵的相乘

时间:2018-09-12 15:34:08

标签: python numpy matrix-multiplication

我想将两个矩阵相乘:

a = np.array([[1,2],[3,4]])
b = np.array([[2,3,4],[5,6,7]])

a
array([[1, 2],
   [3, 4]])
b
array([[2, 3, 4],
   [5, 6, 7]])

我想要类似的结果

array([[2,4,3,6,4,8],[15,20,18,24,21,28]])

如何使用numpy做到这一点?

需要帮助。 预先感谢。

1 个答案:

答案 0 :(得分:0)

已回答here

您可以使用numpy broadcasting或使用outer product

package main

import (
    "crypto/tls"
    "fmt"
    "log"
    "net"
    "net/http"
)

func main() {
    var (
        conn *tls.Conn
        err  error
    )

    tlsConfig := http.DefaultTransport.(*http.Transport).TLSClientConfig

    c := &http.Client{
        Transport: &http.Transport{
            DialTLS: func(network, addr string) (net.Conn, error) {
                conn, err = tls.Dial(network, addr, tlsConfig)
                return conn, err
            },
        },
    }

    res, err := c.Get("https://example.com")
    if err != nil {
        log.Fatal(err)
    }

    versions := map[uint16]string{
        tls.VersionSSL30: "SSL",
        tls.VersionTLS10: "TLS 1.0",
        tls.VersionTLS11: "TLS 1.1",
        tls.VersionTLS12: "TLS 1.2",
    }

    fmt.Println(res.Request.URL)
    fmt.Println(res.Status)
    v := conn.ConnectionState().Version
    fmt.Println(versions[v])

    res.Body.Close()
}

// Output:
// https://example.com
// 200 OK
// TLS 1.2

a[:,:,None]*b