python - 替换多维数组的元素

标签 python numpy multidimensional-array

我试图用列表中的元素替换 29 x 1 矩阵的一些元素。

import numpy as np

initAmount = np.array([[0 for i in range(29)]])
initialAmount = np.ndarray.transpose(initAmount)
ind = [0.04, 0.02, 0.03]
#ind = [1,2,3]
initialAmount[0,0] = float(ind[0])
initialAmount[1,0] = float(ind[1])
initialAmount[2,0] = float(ind[2])
print(initialAmount)

不幸的是,这并没有像预期的那样工作。运行代码后的初始金额应为 [[0.04],[0.02],[0.03],[0],...],而不是 [[0],[0],[0]....],其中是我得到的结果。当我的列表 ind = [1,2,3] 时,代码工作正常。因此,我假设精度存在错误,但我不知道如何解决这个问题。

任何帮助将不胜感激。

最佳答案

只需使用内置的 numpy.zeros 来创建数组,它采用 dtypeshape 参数,极大地简化了您的尝试完成:

>>> init = np.zeros((29, 1), dtype=float)
>>> ind = [0.04, 0.02, 0.03]
>>> init[0,0] = ind[0]
>>> init[1,0] = ind[1]
>>> init[2,0] = ind[2]
>>> init
array([[ 0.04],
       [ 0.02],
       [ 0.03],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ],
       [ 0.  ]])
>>>

注意,默认情况下np.zeros使用float dtype。但明确地表达出来并没有什么坏处。

关于python - 替换多维数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42914872/

相关文章:

python - 无法从 tf.keras 模型 -> 量化卡住图 -> 带有 TOCO 的 .tflite

python - 如何做简单、可靠的网络消息传递?

c++ - 生成python绑定(bind),使用什么方法/程序

python - Pandas 绘制 'group by' 结果的子图

python - Pycharm 无法导入 numpy

numpy - 是否有 Julia 相当于 NumPy 的省略号切片语法 (...)?

javascript - 使用多维数组 javascript 中的数据填充表的列

python - HTML5 WebSocket 服务器

php - 将 MySQL 计数添加到 PHP 数组值中

arrays - Postgresql 和大型多维数组