我希望能够计算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]
能否自动进行此转换?
你有一个字符串列表
你创建了一个字符串数组
你需要一个浮点数数组进行后处理;因此,在创建数组时指定数据类型,它会在创建时将字符串转换为浮点数
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
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 = ['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)
loadtxt
,它甚至可以处理包含数字的多行文本列表。import numpy
A = ['33.33', '33.33', '33.33', '33.37']
NA = numpy.loadtxt(A)
B = ['33.33 33.33\n', '33.33 33.37\n']
NB = numpy.loadtxt(B)
map
不会返回一个列表。 - chthonicdaemon