You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用NumPy将ID数组与特征数组匹配用于神经网络输入

实现方法

针对你的需求,这里提供两种适配8000行大数据量场景的NumPy实现方式:

方法一:纯NumPy向量操作(推荐)

基于NumPy底层优化的维度扩展与轴拼接,处理大数组时效率最高:

import numpy as np

# 模拟你的数据结构
Arr_1 = np.random.randint(100, 1000, size=(8000, 1))  # (8000,1)的user_id数组
Arr_2 = np.random.rand(8000, 1000)  # (8000,1000)的分词文本数组

# 为两个数组各扩展一个维度,形状变为(8000,1,1)和(8000,1,1000)
arr1_expanded = np.expand_dims(Arr_1, axis=1)
arr2_expanded = np.expand_dims(Arr_2, axis=1)

# 在轴1位置拼接,得到目标结构的数组
Arr_3 = np.concatenate([arr1_expanded, arr2_expanded], axis=1)

# 验证形状:输出(8000, 2),每个元素包含对应的ID和文本特征
print(Arr_3.shape)

生成的Arr_3完全匹配你示例中的结构,可直接作为神经网络输入。

方法二:列表推导式(直观但效率稍低)

代码逻辑更直观,但处理8000行数据时速度略慢于纯NumPy操作:

import numpy as np

Arr_1 = np.array([[100], [200], [300]])
Arr_2 = np.array([[1,2,3], [4,5,6], [7,8,9]])

Arr_3 = np.array([[row1, row2] for row1, row2 in zip(Arr_1, Arr_2)])

神经网络输入额外提示

如果模型需要同时输入user_id和文本特征,无需强制拼接成三维数组:多数深度学习框架(如TensorFlow/Keras)支持多输入分支,可直接将Arr_1和Arr_2作为两个独立输入层,后续通过Concatenate层合并特征,这种方式更灵活,还能避免维度转换的额外开销。

内容的提问来源于stack exchange,提问作者Giovanni Meoño

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 00:10:51