2017-03-08 1372 views

回答

5

你想astype

NA = NA.astype(float) 
+0

这是最有帮助的,谢谢 –

0

这就是:

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) 

希望这有助于! 基本上,你没有为最小值和最大值,并在列表中的字符串函数必须是整数

+1

A码转储,无解释没有用。 – TigerhawkT3

+0

如果列表无法更改,并且您不得不将其保留为字符串,该怎么办?尽量不要做出假设。 – rayryeng

+0

这不起作用,因为您并未转换值,但未将它们放入列表中! – chthonicdaemon

2
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

+1

请注意:这在Python 3中不起作用,因为'map'不返回列表。 – chthonicdaemon

3

你有串

您的列表创建了一串字符串

您需要一个浮点数组进行后期处理;所以当你创建数组指定的数据类型,它会转换成字符串在创建时浮

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

2

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)

2

要将字符串转换为漂浮物,最简单的方法是列表理解:

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) 
相关问题