【问题标题】:Numpy array reshape customization pythonNumpy数组重塑自定义python
【发布时间】:2021-10-20 10:40:26
【问题描述】:

我有一个 np 数组 n,形状是 (250,250)。之后我将(最终数组w)转换为(250,250,3),因为我需要对其进行一些操作。

是否可以将w的形状转换为(250,250)

提前致谢。 我尝试了一些 Numpy 的reshaping 操作,但它不起作用!

Numpy reshaping array

Comparing two NumPy arrays for equality, element-wise

Numpy reshaping array

【问题讨论】:

  • 由于您没有发布代码,因此很难具体理解您想要做什么。但是您可以使用 w[;,:,0] 来获得一个形状数组 (250,250) 和 w[;,:,1] 来获得另一个,而对于 w[;,:,2] 第三个。这能回答你的问题吗?

标签: python numpy


【解决方案1】:

numpy.reshape

在不更改数据的情况下为数组赋予新形状。

因此,将形状为 (250,250,3) 的数组转换为形状为 (250,250) 的数组是不正确的,因为第一个确实有 187500 个单元格,而第二个确实有 62500 个单元格。

您可能应该使用切片,请考虑以下示例

import numpy as np
arr = np.array([[[0,1],[2,3]],[[4,5],[6,7]]])  # has shape (2,2,2)
arr2 = arr[:,:,0]  # get certain cross-section, check what will happend if you use 1 inplace of 0 and 2 inplace of 0
print("arr2")
print(arr2)
print("arr2.shape",arr2.shape)

输出

arr2
[[0 2]
 [4 6]]
arr2.shape (2, 2)

【讨论】:

    猜你喜欢
    • 2017-07-22
    • 1970-01-01
    • 2016-12-20
    • 2011-10-01
    • 2019-05-05
    • 2016-02-10
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    相关资源
    最近更新 更多