python - numpy.apply_along_axis 截断字符串,因为它推断出错误的数据类型 '<U1'

标签 python numpy numpy-ndarray

我不知道如何返回 dtype U3 的字符串

我想要:

  1. 将_along_axis应用于my_array

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

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/

相关文章:

python - 编辑列表框中的对象及其来源列表

python - 在这个算法中使用计数排序有什么好处?

python - C程序字符缓冲区意外溢出

python - 字符串到单个字符的数组,而无需在此过程中转换为列表

python - 两个大型数据集的最快迭代合并

python - 在新 Mac 上安装 psd-tools 的挑战

Python 绘图问题/屏蔽数组/阴影线

python - 使用 numpy 从对角线值创建数组堆栈

python - 我可以用掩码分割 numpy 数组吗?

python-imaging-library - 处理 PIL 与 ndarray 中的高度-宽度与宽度-高度坐标顺序