如何从包含科学记数法的字符串创建一个 numpy 数组

Posted

技术标签:

【中文标题】如何从包含科学记数法的字符串创建一个 numpy 数组【英文标题】:How to create a numpy array from a string containing scientific notation 【发布时间】:2019-10-28 18:47:39 【问题描述】:

我有一组我想从一个文本文件中处理的数据,其中每一行都是一个 numpy 数组。有些很容易使用 fromstring 方法转换为数组,但有些则在其中包含科学记数法条目。我将如何将它们转换为 np 数组?

我的数据看起来像(这必须是一个数组):

0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
  0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
  0.00000000e+00 8.02796109e-07 0.00000000e+00 0.00000000e+00
  0.00000000e+00 0.00000000e+00 9.99999197e-01        

【问题讨论】:

【参考方案1】:

我愿意

np.array(x.split(), dtype=np.float)

x 是你的字符串

【讨论】:

【参考方案2】:

你的意思是:

import numpy as np
nn = np.array(['0.00122300e+10', '43434'])
nn = nn.astype(float)
print (nn)
#array([12230000.,    43434.])

【讨论】:

以上是关于如何从包含科学记数法的字符串创建一个 numpy 数组的主要内容,如果未能解决你的问题,请参考以下文章

Numpy科学计算从放弃到入门

从嵌套列表创建数组时抑制 Numpy 中的科学记数法

菜鸟数据科学入门03 - NumPy 数组基础和基本操作

C-Numpy:如何从现有数据创建固定宽度的字符串数组

numpy字符串文件行到浮点数组科学记数法

怎么去掉小数点