我想将一个充满浮点数的数组与一个充满字符串的数组组合在一起。有没有办法做到这一点?
(我也很难绕过我的花车,插入正在将它们改为科学记数法;我无法通过一个小例子重现这一点)
A=np.array([[1/3,257/35],[3,4],[5,6]],dtype=float)
B=np.array([7,8,9],dtype=float)
C=np.insert(A,A.shape[1],B,axis=1)
print(np.arround(B,decimals=2))
D=np.array(['name1','name2','name3'])
如何将D附加到C的末尾,就像我将B附加到A上一样(插入D作为C的最后一列)?
我怀疑在同一个数组中有字符串和浮点数之间存在类型问题。它也会回答我的问题,如果有办法将一个浮点数(或者一个科学数字,我的数字显示为' 5.02512563e-02')改为一个大约4位数的字符串(.0502)
我认为连接不起作用,因为数组维度是(3,3)和(,3)。 D是一维数组,D.T与D没有区别。另外,当我插入它时,我得到" ValueError:所有输入数组必须具有相同的维数。"
我不会因为追加而导致精确度下降,因为这是我打印前的最后一步。
答案 0 :(得分:0)
首先尝试将D设为n numpy数组,然后使用C:
进行转置和连接D=np.array([['name1','name2','name3']])
np.concatenate((C, D.T), axis=1)
有关连接的说明和示例,请参阅文档: http://docs.scipy.org/doc/numpy/reference/generated/numpy.concatenate.html
答案 1 :(得分:0)
numpy数组仅支持数组中的一种数据类型。将浮点数更改为str不是一个好主意,因为它只会导致值非常接近原始值。
尝试使用pandas,它支持单列中的多种数据类型。
import numpy as np
import pandas as pd
np_ar1 = np.array([1.3, 1.4, 1.5])
np_ar2 = np.array(['name1', 'name2', 'name3'])
df1 = pd.DataFrame({'ar1':np_ar1})
df2 = pd.DataFrame({'ar2':np_ar2})
pd.concat([df1.ar1, df2.ar2], axis=0)