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

如何为numpy数组元素赋值完整字符串,避免仅截取首字符

问题原因

你创建numpy数组时指定dtype=str,默认会被解析为长度为1的Unicode字符串类型U1,赋值时只会保留字符串的首个字符,这属于numpy字符串类型的默认规则,不是逻辑写法错误。
另外你的示例代码存在笔误:函数内的arry[i,0]拼写错误,正确应为array[i,0],否则运行时会触发NameError。

解决方案

方案1:指定固定长度的字符串类型

提前评估需要存储的字符串最大长度,创建数组时指定对应长度的Unicode字符串类型即可,格式为U+最大长度,比如需要存最长10位的字符串就写U10:

import numpy

i=0

def func(name,number,array,i):
    array[i,0]=number
    array[i,1]=name
    print(array)

People = numpy.zeros([5,2], dtype='U10')

func("qwe","123",People,i)

运行后即可输出你期望的结果。

方案2:使用object类型存储

如果无法提前确定字符串的最大长度,可以指定数组类型为object,直接存储Python原生字符串对象:

import numpy

i=0

def func(name,number,array,i):
    array[i,0]=number
    array[i,1]=name
    print(array)

People = numpy.zeros([5,2], dtype=object)

func("qwe","123",People,i)

内容的提问来源于stack exchange,提问作者Bruno Rojas Acevedo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:15:07