【发布时间】:2020-05-31 18:30:29
【问题描述】:
我开始使用 Numpy,我正在尝试使用它的一些功能来填充一个二维方阵,其中所有行的总和为 1。这完成了我到目前为止所做的事情,然而,这段代码有几次以前的迭代给了我一维数组列表的变体。这个解决方案感觉不是很优雅——清晰地编写这段代码的最佳实践是什么?
import numpy as np
class Markov:
def __init__(self, states=5):
self.prob_dist = []
print(self.prob_dist)
for i in range(states):
change_prob = [1 for x in range(states)]
print(change_prob)
self.prob_dist.append(list(np.random.dirichlet(change_prob, size=1)[0]))
print(self.prob_dist)
def main():
output = Markov()
if __name__ == '__main__':
main()
【问题讨论】:
-
从一维数组列表中创建一个二维数组是可以的,只要一维数组都具有相同的形状。如果它们的形状不同,您将得到一维数组(对象)或错误,而不是二维数组。
标签: python numpy readability