【问题标题】:Making a new numpy array from numpy array从 numpy 数组创建一个新的 numpy 数组
【发布时间】:2017-12-30 11:45:45
【问题描述】:

对 numpy 数组非常陌生。尝试更多地了解它们并克服困惑。

我有一个包含 50 个 1000x1000 图像的 numpy 数组。形状为 (50,1000,1000)。我想翻转每个图像并将其放入形状为 (50,1000,1000) 的新 numpy 数组中。

这可行,但有没有不使用中间列表的更简单方法?

images = []
for index in range(training_images.shape[0]):
    image = training_images[index,...]
    flipped = np.fliplr(image)
    images.append(flipped)
flipped_training_images = np.concatenate([np.expand_dims(x,axis=0) for x in images],axis=0)

【问题讨论】:

    标签: numpy image-processing


    【解决方案1】:

    沿最后一个轴翻转 -

    flipped_training_images = training_images[...,::-1]
    

    请注意,这将是一个视图。因此,如果需要副本,请附加.copy()

    因此,我们也可以使用np.flip

    np.flip(training_images,axis=-1)
    

    【讨论】:

    • 感谢您的回复。抱歉,我的版本没有 np.flip。我将如何在水平轴上进行翻转?
    • @lr100 你试过第一个吗:training_images[...,::-1]?对此有何反馈?什么是横轴?
    • 我做到了。我看起来像那个在水平轴上翻转。我尝试了 training_images[...,:-1:] 但这似乎不起作用。抱歉,我对此真的很陌生。
    • @lr100 您可能正在寻找一份副本。所以,如前所述尝试:flipped_training_images = training_images[...,::-1].copy()。这会产生与循环版本完全相同的结果。
    • 是的,您的代码运行良好。我也试图翻转水平轴。
    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    相关资源
    最近更新 更多