Python numpy.apply_沿_轴截断字符串,因为它推断出错误的数据类型'&书信电报;U1和x27;

Python numpy.apply_沿_轴截断字符串,因为它推断出错误的数据类型'&书信电报;U1和x27;,python,numpy,numpy-ndarray,Python,Numpy,Numpy Ndarray,我不知道如何返回数据类型为U3的字符串 我想: 沿_轴将_应用于我的_数组 对于每一行,返回一个字符串 def my_函数(x): 返回x[2] my_array=np.array([[1,1,“A”],[1,1,“BBB”],[1,1,“CCC”])) np.沿_轴应用_(my_函数,axis=1,arr=my_数组) 我预计产出: array(['A','BBB','CCC'],dtype='试试这个(尽管可能有更好的方法): 将numpy导入为np def my_功能(x): 返回np.

我不知道如何返回数据类型为U3的字符串

我想:

  • 沿_轴将_应用于我的_数组

  • 对于每一行,返回一个字符串

  • def my_函数(x):
    返回x[2]
    my_array=np.array([[1,1,“A”],[1,1,“BBB”],[1,1,“CCC”]))
    np.沿_轴应用_(my_函数,axis=1,arr=my_数组)
    
    我预计产出:
    array(['A','BBB','CCC'],dtype='试试这个(尽管可能有更好的方法):

    将numpy导入为np
    def my_功能(x):
    
    返回np.array(x[2],dtype='对于这个特定的用例,您可以使用切片,即

    my_array[:, 2]
    
    并避免沿_轴应用_。但我同意,从函数的第一次应用推断类型是很麻烦的。还有一个方法可以解决这个问题


    顺便说一句:数组中的数字被转换成字符串,但这会导致
    的类型不太理想谢谢你的回答,但我用沿_轴应用_和返回字符串简化了我的实际问题(因此我的_数组[:,2]是正确的答案,但不是我真正的问题)。也许我应该更准确地解释我的问题。这是我关于stackoverflow的第一个问题:)。通常
    apply\u沿\u轴
    是过度杀戮。在您的示例中,
    np.array([x[2]表示我的\u数组中的x])
    快10倍。
    apply
    在数组为3d或更大时最为方便,并且在2个或更多维度上进行迭代看起来很混乱。如果
    my\u函数
    接受
    dtype
    参数,则可以通过
    apply\u沿\u轴
    传递该参数。最好读取
    apply\u沿\u轴
    的代码。