python - 将一维数组转换为 numpy 矩阵

标签 python numpy

我有一个简单的、带有随机数的一维 Python 数组。我想要做的是将它转换成特定形状的 numpy 矩阵。我目前的尝试是这样的:

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

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

[[随机 1、随机 2、随机 3、...]]

所以只有一个维度的第一个元素被使用,reshape 命令没有效果。有没有办法将一维数组转换为矩阵,使前 x 项成为矩阵的第 1 行,接下来的 x 项成为第 2 行,依此类推?

基本上这是预期的形状:

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

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

最佳答案

reshape() 没有原地 reshape ,需要对结果进行赋值:

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

关于python - 将一维数组转换为 numpy 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16235564/

相关文章:

javascript - Selenium 蟒 : How to Scroll Down in a Pop Up window

python - 替换列表中的特定元素

python - 使用 pydrive 将图像字符串上传到 Google Drive

python - 换行符和破折号在神社中无法正常工作

numpy - 从 3 维 nd 数组中选择行

python - 使用 Numpy ndarray 进行条件索引

python - python忽略引起错误的任何一行,并在该行之后继续运行代码

python - 如何在 python 中合并两个或三个 3D 数组?

python - numpy.who 在所有内存中

python - 替换 NumPy 数组中部分字符串的最短方法