如何将字符串列表转换为数字numpy数组?
我希望能够计算出平均值,最小值和A
最大:如何将字符串列表转换为数字numpy数组?
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]
是否可以自动执行这种转换?
这就是:
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)
希望这有助于! 基本上,你没有为最小值和最大值,并在列表中的字符串函数必须是整数
A码转储,无解释没有用。 – TigerhawkT3
如果列表无法更改,并且您不得不将其保留为字符串,该怎么办?尽量不要做出假设。 – rayryeng
这不起作用,因为您并未转换值,但未将它们放入列表中! – chthonicdaemon
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
请注意:这在Python 3中不起作用,因为'map'不返回列表。 – chthonicdaemon
你有串
您的列表创建了一串字符串
您需要一个浮点数组进行后期处理;所以当你创建数组指定的数据类型,它会转换成字符串在创建时浮
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
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)
这是最有帮助的,谢谢 –