Numpy ndarray切片:np.char.split分割字符串后取首元素报索引错误
错误原因
np.char.split 是向量化的字符串处理方法,设计目标是批量处理数组形式的多个字符串,而非单个Python字符串。当你传入单个字符串作为输入时,返回的numpy.ndarray是0维数组(标量数组),数组内部存储的才是拆分后的列表结果,但0维数组本身没有轴维度,因此无法使用[0]进行索引。
你打印item_value.shape可以看到输出为(),可以验证它是0维数组的属性。
解决方法
你可以任选以下任意一种方案解决:
- 方案1:调用
item()方法取出0维数组中存储的实际列表,再进行索引
device_id = item_value.item()[0]
- 方案2:给输入字符串套一层列表,让方法返回1维数组,再按维度索引
# 输入改为包含单个元素的列表 item_value = np.char.split([item], sep = ',') device_id = item_value[0][0]
- 方案3:如果仅处理单个字符串,直接使用Python原生的字符串拆分方法更简洁高效
device_id = item.split(',')[0]
内容的提问来源于stack exchange,提问作者Lima
相关产品推荐
相关产品推荐

