我不知道如何返回 dtype U3 的字符串
我想要:
将_along_axis应用于my_array
对于每一行,返回一个字符串
def my_function(x):
return x[2]
my_array = np.array([[1,1,"A"],[1,1,"BBB"], [1,1,"CCC"]])
np.apply_along_axis(my_function, axis=1, arr=my_array)
我期望的输出:
array(['A', 'BBB', 'CCC'], dtype='<U3')
但实际输出是
array(['A', 'B', 'C'], dtype='<U1')
因为第一个元素 ('A') 具有固定大小的 U1,所以接下来的每个元素都会截断为 U1 ('BBB' -> 'B')。
您知道如何将代码更改为字符串(例如 dtype U3)吗?
最佳答案
尝试这个(尽管可能应该有更好的方法):
import numpy as np
def my_function(x):
return np.array(x[2], dtype='<U3')
my_array = np.array([[1,1,"A"],[1,1,"BBB"], [1,1,"CCC"]])
np.apply_along_axis(my_function, axis=1, arr=my_array)
关于python - numpy.apply_along_axis 截断字符串,因为它推断出错误的数据类型 '<U1',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55984973/