繁体   English   中英

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

[英]How to convert a list of strings into a numeric numpy array?

我希望能够计算出的平均值,最小值和最大值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]

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

你想要astype

NA = NA.astype(float)

你有一个字符串列表

您创建了一个字符串数组

你需要一系列花车进行后期处理; 所以在创建数组时指定数据类型,它会在创建时将字符串转换为浮点数

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

import numpy as np
A = ['33.33', '33.33', '33.33', '33.37']
# convert to float
arr = np.array(map(float, A)) 
# calc values
print np.mean(arr), np.max(arr), np.min(arr)

产出: 33.34 33.37 33.33

A = [float(v) for v in ['33.33', '33.33', '33.33', '33.37']]

要么

A = np.array(['33.33', '33.33', '33.33', '33.37'], dtype=float)

要将字符串转换为浮点数,最简单的方法是列表解析:

A = ['33.33', '33.33', '33.33', '33.37']
floats = [float(e) for e in A]

现在您可以转换为数组:

array_A = np.array(floats)

剩下的可能是你所知道的:

mean, min, max = np.mean(array_A), np.min(array_A), np.max(array_A)

这里是:

import numpy as np

A = ["33.33", "33.33", "33.33", "33.37"]
for i in range(0,len(A)):
    n = A[i]
    n=float(n)
    A[i] = n

NA = np.asarray(A)

AVG = np.mean(NA, axis=0)
maxx = max(A)
minn = min(A)

print (AVG)
print (maxx)
print (minn)

希望这可以帮助!!! 基本上,你没有min和max的函数,列表中的字符串必须是整数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM