【问题标题】:setting a value in a specific position in an empty matrix using numpy python使用 numpy python 在空矩阵中的特定位置设置值
【发布时间】:2016-09-16 11:22:22
【问题描述】:

在空的 numpy 3D 矩阵中设置值时遇到问题 这是我正在使用的代码的简化示例

import numpy as np

QMatrix = np.empty(((3,3,3))) # I do not want to use np.zero for a specific reason
QMatrix[0][0][0] = 57
print ("Position Values is " , Qmatrix[0][0][0])

这应该设置值 57 @ [0][0][0] 矩阵的位置,但是当我打印矩阵时,我得到的只是

Position Value is 5.70000000e+001

但我想要的是 57 的值

任何帮助都会得到帮助。提前致谢

【问题讨论】:

  • dtype=np.int 作为第二个参数传递给np.empty
  • 感谢@YakymPirozhenko,但是当我这样做时,所有其他值也变得非常大。但我也不希望这种情况发生

标签: python numpy matrix multidimensional-array


【解决方案1】:

您必须从

编辑第二行
QMatrix = np.empty(((3,3,3)))  

QMatrix = np.empty(((3,3,3)), dtype=int) 

您的脚本将是:

import numpy as np
QMatrix = np.empty(((3,3,3)), dtype=int) #QMatrix = np.empty(((3,3,3))) 
QMatrix[0][0][0] = 57

【讨论】:

  • 感谢@Hamza,但是当我这样做时,所有其他值也会变大
【解决方案2】:

numpy 数组的默认 dtype 是float64。您可以通过

在您的代码中验证这一点
import numpy as np
QMatrix = np.empty(((3,3,3)))
print QMatrix.dtype 

输出 - dtype('float64')

所以,如果你希望数组是整数类型,你需要在声明 numpy 数组时显式设置dtype

QMatrix = np.empty(((3,3,3)),dtype='int')
print QMatrix.dtype 

输出 - dtype('int64')

现在,如果您尝试分配 3-D 数组的第一个元素,即 QMatrix[0][0][0] = 57,它将被存储为 int 类型而不是 float

.

【讨论】:

  • 谢谢。但如果我这样做,向量中的其他值也会变大。
猜你喜欢
  • 2021-09-07
  • 2016-01-26
  • 1970-01-01
  • 2013-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多