首页 > 解决方案 > 如何连接 2 个数组:1 个数组包含字符串,另一个数组包含 int64

问题描述

我很难尝试使用 numpy 连接两个数组。其中一个数组包含文本 ( string),另一个数组包含数字 ( int64)。

我怎么做?

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

我正在运行一个 for 循环来确定 a 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])

标签: pythonarraysnumpy

解决方案


您要连接的数组之一应该具有 object dtype 以便获得具有 object 类型的最终数组,该数组可以保存具有异构数据类型的项目:

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 如何确定您可以阅读的数组类型numpy 如何确定对象数组的 dtype 及其含义?


推荐阅读