我想将numpy数组中的字符替换为字典中的特定值。例如,我想用相同的数组格式将6837
替换为fhcg
。在
这就是我试过的
import numpy
val=numpy.array([["6837"],["7628"],["3804"],["3031"],["9848"],["8481"],["1220"],["7701"],["7934"]])
d={'1':'a','2':'b','3':'c','4':'d','5':'e','6':'f','7':'g','8':'h','9':'i','0':'x'}
rep = [d[v] for v in val]
new_val= ' '.join(rep)
但它给出了这个错误
TypeError: unhashable type: 'numpy.ndarray'
您的
val
数组是2d的,因此您必须注意如何迭代它。在让我们定义一个小函数来转换一个字符串;转换是逐字符的-这是一个纯字符串操作。在
^{pr2}$我们可以在列表理解或其他迭代器中使用它。但这是
^{3}$np.vectorize
做得很好的一个例子。在它确实在数组上迭代,所以没有提供太多的速度优势,但是它负责“广播”,处理2d数组,而不需要我们额外的工作。在
我想你想要:
或列表理解:
^{pr2}$相关问题 更多 >
编程相关推荐