Python Numpy unicode到int

Python Numpy unicode到int,python,python-2.7,numpy,unicode,Python,Python 2.7,Numpy,Unicode,通过Pycharm使用python 2.7 我有一个python代码——非常简单 a = [2, 3, 4, 5] b = [30,32,33,34] c = ['test1', 'test2', 'test3', 'test4'] a = np.asarray(a) # -- Similarly for b and c 我将这些列表转换为numpy数组 然后我做了下面的事情 d = np.transpose(np.vstack((a,b,c))) 通过它我得到了一个3D numpy阵列

通过Pycharm使用python 2.7

我有一个python代码——非常简单

a = [2, 3, 4, 5]

b = [30,32,33,34]
c = ['test1', 'test2', 'test3', 'test4']
a = np.asarray(a) # -- Similarly for b and c
我将这些列表转换为numpy数组

然后我做了下面的事情

d = np.transpose(np.vstack((a,b,c)))
通过它我得到了一个3D numpy阵列

当我打印d时,我看到每个元素前面都有一个
u“
,这可能表示unicode数据类型

现在,我如何访问a、b列,并对这些值执行一些算术运算。每当我试图访问一个值并将其转换为int时,就会说
无效的literal for int(),基数为10

我所需要的就是读取第一列或第二列——做一些算术运算。第一列和第二列的值将是
a
b

a = np.array(a)
b = np.array(b)
现在我如何访问a、b列并进行一些算术运算 对这些值的操作


由于最后一列是文本,其他两列也将转换为文本。一个矩阵只能有一种类型。解决方案将是结构化数组:

a = [2, 3, 4, 5]
b = [30,32,33,34]
c = ['test1', 'test2', 'test3', 'test4']
matrix = np.array(zip(a,b,c), dtype=[('a',int),('b',int),('c','S5')])
要访问这些值,必须使用列名:

matrix['a'][2:4]


不要把非代码放在代码块中,不要把东西放在所有的大写字母中“将已经在标题中,因为最受欢迎的标签在问题标题前。您的问题如果您想保留
a、b、c
的数据类型,最好使用pandas数据帧,因为numpy数组只能承载一种数据类型。@Daniel我理解。但我如何将它们转换回整数值或十进制数值?@Psidom-我对熊猫数据框架完全不懂,而且数字被引用,表明它们是字符串。当你将一个字符串数组与一个数字数组连接起来时,它会创建一个具有公共数据类型的数组,这里是(unicode)字符串。我无法通过你提到的方式访问你的值。如果我说矩阵[0],我得到2,30,test1----我找不到一种方法可以得到2或30的完美答案。有没有可能附加一个新的数组,比如说“d”=[2.2,3.3,4.4,5.5],这是一种浮点类型。不,你必须用“dtype=[('a',int),('b',int),('c','S5'),('d',float)]重新创建矩阵。我使用
fromarrays
生成了同样类型的结构化数组,
matrix['a'][2:4]
matrix[5]['b']