如何在Python二维数组中输入字符串?为何仅显示首字符?
numpy字符串数组截断问题及np.empty支持性解答
问题原因
使用label = np.empty([17,2],dtype=str)创建数组时,numpy默认将字符串类型设为长度1的Unicode字符串(等价于dtype='U1'),因此赋值"asd"这类多字符字符串时,只会保留首字符。
np.empty对字符串的支持性
np.empty完全支持创建字符串类型数组,它的作用是分配内存空间但不初始化元素值,只要正确指定字符串类型参数即可。
解决方法
- 指定固定长度的字符串类型:根据需要设置字符串最大长度,比如要存储3个字符的字符串,用
dtype='U3':label = np.empty([17,2], dtype='U3') label[1][1] = "asd" label[2][1] = "asd" print(label) - 使用object类型存储任意长度字符串:如果字符串长度不固定,用
dtype=object让数组直接存储Python字符串对象:label = np.empty([17,2], dtype=object) label[1][1] = "asd" label[2][1] = "asd" print(label)
内容的提问来源于stack exchange,提问作者jing_520713
相关产品推荐
相关产品推荐

