如何将字符串列表转换为数字 numpy 数组?

新手上路,请多包涵

我希望能够计算 A 的平均值、最小值和最大值:

  import numpy as np

 A = ['33.33', '33.33', '33.33', '33.37']

 NA = np.asarray(A)

 AVG = np.mean(NA, axis=0)

 print AVG

这不起作用,除非转换为:

 A = [33.33, 33.33, 33.33, 33.37]

是否可以自动执行此转换?

原文由 Cristian J Estrada 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 744
2 个回答

你想要 astype

 NA = NA.astype(float)

原文由 gzc 发布,翻译遵循 CC BY-SA 3.0 许可协议

你有一个字符串列表

您创建了一个字符串数组

您需要一组浮点数来进行后期处理;因此,当您创建数组时指定数据类型,它会在创建时将字符串转换为浮点数

import numpy as np

#list of strings
A = ['33.33', '33.33', '33.33', '33.37']
print A

#numpy of strings
arr = np.array(A)
print arr

#numpy of float32's
arr = np.array(A, dtype=np.float32)
print arr

#post process
print np.mean(arr), np.max(arr), np.min(arr)

>>>
['33.33', '33.33', '33.33', '33.37']
['33.33' '33.33' '33.33' '33.37']
[ 33.33000183  33.33000183  33.33000183  33.36999893]
33.34 33.37 33.33

https://docs.scipy.org/doc/numpy/user/basics.types.html

原文由 litepresence 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题