Python numpy.apply_沿_轴截断字符串,因为它推断出错误的数据类型'&书信电报;U1和x27;
我不知道如何返回数据类型为U3的字符串 我想: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.
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轴
的代码。