在矩阵python中匹配向量

时间:2020-08-04 10:54:50

标签: python numpy matrix probability

我是python和程序设计的新手。

例如,当我有两个矢量时,我想创建一个矩阵 a = [1、2、3]和b = [4、5、6] 我想得到一个与向量具有相同行的矩阵,但是向量在单独的列中。 m = [[1,4],[2,5],[3,6]]

我正在寻找一种方法来执行此操作,因为我的代码中的向量比示例中的向量更复杂。 我想对向量向量概率_获胜和概率_损失_做相同的事情。

import numpy as np
p = np.arange(0, 1, 0.01, dtype = float)  


alpha = input("alpha = ") 
alpha = np.zeros((1, 100)) + alpha 

def w(alpha, p):
    return np.exp(-(-np.log(p))**alpha)

w = w(alpha, p)

def P(w):
    return np.exp(np.log2(w))
     
probability_of_winning = P(w)
probability_of_winning = np.round([probability_of_winning], decimals=2) 
probability_of_winning_in_percent = probability_of_winning * 100

probability_of_losing = 1 - probability_of_winning
probability_of_losing_in_percent = probability_of_losing * 100

非常感谢您

3 个答案:

答案 0 :(得分:1)

a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]
d = [10, 11, 12]

def horizontal_matrices(*args):
    res = []
    for i in range(len(args[0])):
        col = []
        for j in args:
            col.append(j[i])
        res.append(col)
    return res


print(horizontal_matrices(a, b, c, d))
# [[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]]

答案 1 :(得分:1)

您在这里:

import numpy as np


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

arr = np.empty((0, a.shape[0]-1), int)
for i in range(a.shape[0]):
    to_append = np.array([[a[i], b[i]]])
    arr = np.append(arr, to_append, axis=0)

输出:

[[1 4]
 [2 5]
 [3 6]]

答案 2 :(得分:1)

简单的pythonic和numpy样式,不需要任何循环,附加或其他昂贵的操作:

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

np.vstack((a, b)).T

也适用于混合类型和大量向量f.i. abnp.arrays,而cd是python list s:

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = [13, 21, 12]
d = [19, 33, 77]
# add all to a tuple
arrays = (a, b, c, d)
# and stack
np.vstack(arrays).T

也可以使用更通用的np.vstack(arrays).T代替np.stack(arrays, axis=1)