如何在NumPy矩阵中将指定整数替换为字符串?
在NumPy数组中替换整数为字符串的实现方法
当然可以把矩阵里的0替换成字符串'x',不过这里有个NumPy的核心特性得注意——NumPy数组的元素类型是统一的,你原来创建的是int32类型的数组,直接往里面塞字符串肯定会报错。得先把数组转换成支持字符串的类型,才能完成替换操作。
给你看正确的实现代码:
import numpy as np # 创建原始整数数组 x = np.array([[0,1,1,2], [0, 5, 0, 0], [2, 0, 3, 3]], np.int32) # 先将数组转换为字符串类型 x_str = x.astype(str) # 把值为'0'的元素替换成'x' x_str[x_str == '0'] = 'x' # 打印结果 print(x_str)
运行这段代码后,你会得到想要的输出:
[['x' '1' '1' '2'] ['x' '5' 'x' 'x'] ['2' 'x' '3' '3']]
另外给你提个小建议:如果之后还需要对这个数组做数值计算,这种字符串类型的数组就没法用了。要是只是为了展示格式化后的结果,上面的方法完全没问题;如果想保留数值运算能力,也可以不修改数组本身,而是在打印的时候做格式化处理,比如用列表推导式遍历元素输出。
内容的提问来源于stack exchange,提问作者Alexander Biel
相关产品推荐
相关产品推荐

