如何解决如何将对象数组的 dtype 更改为字符串 但是
我的问题类似于这个问题How to solve the AttributeError:'list' object has no attribute 'astype'? 但是,我正在尝试创建一系列字符串,以便在图形中绘制。
feature_names = df.iloc[:,maxIndex].columns
newMaxName.append(feature_names)
newMaxName = np.array(newMaxName,dtype =np.str)
newMaxName
所以它给了我输出
array(['shar','dec','intel','like','amb','met','pid','prob_o','pf_o_sin'、'pf_o_att'、'pf_o_sha'、'pf_o_fun'、'age_o'、
'pf_o_amb'、'pf_o_int'、'attr_o'、'attr'、'attr2_1'、'sinc'、
'shar1_1','shar_o','amb_o','intel1_1','attr1_1','fun_o'],dtype=' 我希望它们是字符串,我该如何转换它们?
解决方法
您已经将其转换为字符串数据类型,即默认的 unicode 字符串数据类型:
>>> arr
array(['shar','dec','intel','like','amb','met','pid','prob_o','pf_o_sin','pf_o_att','pf_o_sha','pf_o_fun','age_o','pf_o_amb','pf_o_int','attr_o','attr','attr2_1','sinc','shar1_1','shar_o','amb_o','intel1_1','attr1_1','fun_o'],dtype='<U8')
如果您想要字节字符串,请具体说明:
>>> arr.astype(np.dtype('S'))
array([b'shar',b'dec',b'intel',b'like',b'amb',b'met',b'pid',b'prob_o',b'pf_o_sin',b'pf_o_att',b'pf_o_sha',b'pf_o_fun',b'age_o',b'pf_o_amb',b'pf_o_int',b'attr_o',b'attr',b'attr2_1',b'sinc',b'shar1_1',b'shar_o',b'amb_o',b'intel1_1',b'attr1_1',b'fun_o'],dtype='|S8')
注意,出于记忆目的,字节字符串可能更可取:
>>> arr.nbytes
800
>>> arr.astype(np.dtype('S')).nbytes
200
但是
如果您的目的是绘图,那么使用 object
几乎可以肯定。请注意,在 1.00 版之前,pandas
不使用任何特定于字符串的类型,object
是 字符串类型。
如果您正在使用熊猫,您可能需要:
>>> import pandas as pd
>>> pd.__version__
'1.1.1'
>>> s = pd.Series(['abc','def','ghi'])
>>> s
0 abc
1 def
2 ghi
dtype: object
>>> s.astype(pd.StringDtype())
0 abc
1 def
2 ghi
dtype: string
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。