我正在使用 numpy 計算 H2O 的坐標。
我知道在創建本身中使用了正確的資料型別。
r = 0.9820
angle_rad = np.deg2rad((180-103.718)/2)
off_x = r*np.cos(angle_rad)
off_y = r*np.sin(angle_rad)
h2o_base = np.array([['O', np.float64(0.), np.float64(0.), np.float64(0.)],
['H', -off_x, off_y, np.float64(0.)],
['H', off_x, off_y, np.float64(0.)]
])
h2o_base
我期待一個具有 (string, float, float, foat) 資料型別的陣列,但是當我檢查它時。這段代碼的輸出是
array([['O', '0.0', '0.0', '0.0'],
['H', '-0.7723363998864039', '0.606482056956765', '0.0'],
['H', '0.7723363998864039', '0.606482056956765', '0.0']],
dtype='<U32')
其中充滿了字串元素。
我可以請教一下嗎?
它不應該自動檢測正確的資料型別嗎?
uj5u.com熱心網友回復:
添加dtype=object規范
h2o_base = np.array([['O', np.float64(0.), np.float64(0.), np.float64(0.)],
['H', -off_x, off_y, np.float64(0.)],
['H', off_x, off_y, np.float64(0.)]],
dtype=object)
應該能解決問題。
實際上,與list可以保存不同型別元素的內置型別不同,a 只np.array允許對所有元素使用一種資料型別。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/382269.html
上一篇:如何在javascript上使用push方法創建新陣列
下一篇:避免將重復的物件推送到角度陣列
