-3

我在 python 2.7.5 上有这段代码:

#!/usr/bin/env python2
#Ejercicio 24

from numpy import *
from string import *

def main():
i=0
j=0
k=0
filas=5
temp=''
columnas=3
nombres=['Julio' , 'Andres', 'Cesar', 'Maria', 'Isabel']
print nombres
tabla= arange(15)
tabla=tabla.reshape(filas,columnas)
print tabla

for j in range(columnas):
    for i in range(filas):
        if j==0:
            temp=nombres[i]
            #print temp
                    tabla[j,i]=int(float32(temp))
            print tabla[j,i]


return 0


if __name__ == '__main__':
main()

我有一个包含字符串(名称)的列表,但我想将这些名称分配给名为 tabla 的数组的第一列。但我在编译器中收到此错误:

['Julio', 'Andres', 'Cesar', 'Maria', 'Isabel']
[[ 0  1  2]
[ 3  4  5]
[ 6  7  8]
[ 9 10 11]
[12 13 14]]
Julio
Traceback (most recent call last):
File "ejercicio24.py", line 34, in <module>
 main()
File "ejercicio24.py", line 25, in main
tabla[j,i]=int(float32(temp))
ValueError: could not convert string to float: Julio

我可以为数组的特定列分配字符串吗?

4

2 回答 2

1

NumPy 的重点是有效地处理一种数据类型的数组,通常是数字数据类型。如果数组的行有名称,您可以在单独的数组或常规 Python 列表中跟踪它们。

于 2013-11-10T19:12:18.637 回答
0

但是您认为“Julio”如何转换为 float32?您只需键入:

if j==0:
    temp=nombres[i]
    #print temp
    tabla[j,i]=temp
    print tabla[j,i]
于 2013-11-10T19:05:58.140 回答