繁体   English   中英

将1D数组转换为numpy矩阵

[英]Convert 1D array into numpy matrix

我有一个简单的一维Python数组,随机数。 我想要做的是将其转换为特定形状的numpy Matrix。 我目前的尝试看起来像这样:

randomWeights = []
for i in range(80):
    randomWeights.append(random.uniform(-1, 1))
W = np.mat(randomWeights)
W.reshape(8,10)

不幸的是,它总是创建一个形式的矩阵:

[[random1,random2,random3,...]]

因此,只使用一个维度的第一个元素,并且reshape命令无效。 有没有办法将1D数组转换为矩阵,以便前x个项目将是矩阵的第1行,接下来的x个项目将是第2行,依此类推?

基本上这将是预期的形状:

[[1, 2, 3, 4, 5, 6, 7, 8],
 [9, 10, 11, ... ,    16],
 [...,               800]]

我想我总是可以通过解析输入数组手动构建一个所需形式的新矩阵。 但我想知道是否有一个更简单,更优雅的解决方案,内置函数我没有看到。 如果我必须手动构建这些矩阵,我将在代码的其他区域进行大量的额外工作,因为我的所有源数据都来自简单的1D数组,但将作为矩阵计算。

reshape()不会重新定位,您需要分配结果:

>>> W = W.reshape(8,10)
>>> W.shape
(8,10)    

你可以使用W.resize()ndarray.resize()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM