如何连接2个数组:1个数组包含字符串,另一个数组包含int64

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何连接2个数组:1个数组包含字符串,另一个数组包含int64相关的知识,希望对你有一定的参考价值。

我正在努力尝试使用numpy连接两个数组。其中一个数组有文本(string),另一个数组有数字(int64)。

我怎么做?

使用np.concatenate()将所有值设置为字符串并且需要两者。

我正在运行一个for循环来确定RandomForestClassifier的超参数...当循环转到数字时,给出一个错误,因为期待数字并得到字符串'1''2'

我正在使用

np.concatenate((['auto'], np.arange(20, 120, 20)), axis=0, out=None)

并得到

array(['auto', '20', '40', '60', '80', '100'], dtype='<U11')

但是,我需要

array(['auto', 20, 40, 60, 80, 100])
答案

您要连接的其中一个数组应该具有对象dtype,以便获得具有对象类型的最终数组,该数组可以保存具有异构数据类型的项:

In [7]: np.concatenate((['auto'], np.arange(20, 120, 20).astype(object)), axis=0, out=None)
Out[7]: array(['auto', 20, 40, 60, 80, 100], dtype=object)

如果您想知道Numpy如何确定数组类型,您可以阅读How does numpy determin the object-array's dtype and what it means?

另一答案

虽然可能不是最佳解决方案,但这可行:

np.asarray(['auto'] + list(np.arange(20, 120, 20)), dtype=object)

结果:

array(['auto', 20, 40, 60, 80, 100], dtype=object)

问题在于你要组合不同的类型,所以你需要告诉numpy所有对象都是允许的,没有转换。

以上是关于如何连接2个数组:1个数组包含字符串,另一个数组包含int64的主要内容,如果未能解决你的问题,请参考以下文章

2个数组 如何判断2个数组中不同的元素

如何一次循环遍历 2 个数组并将数组中的颜色分配给另一个数组的每个值

如何在 jQuery 中将 2 个数组合并为 1 个数组? [复制]

c#有两个数组,想把这个两组中相同的元素放在另一个数组中

C语言中如何不用strcat函数来连接2个数组

OC中如何将一个字符串截取成若干个数组对象