gpt4 book ai didi

python - NumPy:将一维数组转换并 reshape 为带有零的二维数组?

转载 作者:行者123 更新时间:2023-12-04 00:15:06 25 4
gpt4 key购买 nike

如何将以下列表转换并 reshape 为带零的二维数组?

# original list 
[1, 0.96, 0.92, 0.88]

# 2D Array
[[1 0 0 0 ]
[0.96 1 0 0 ]
[0.92 0.96 1 0 ]
[0.88 0.92 0.96 1 ]]

最佳答案

这是一种时髦的矢量化方式。我们可以利用 np.lib.stride_tricks.as_strided 基于 scikit-image's view_as_windows 获得滑动窗口 View 并解决它。

from skimage.util.shape import view_as_windows

# a is input array (convert to array with np.array() is input is list)
p = np.r_[a[::-1], np.zeros(len(a)-1, dtype=a.dtype)]
out = view_as_windows(p,len(a))[::-1]
或者,保持它原生于 NumPy -
m = len(a)
n = p.strides[0]
out = np.lib.stride_tricks.as_strided(p[m-1:], shape=(m,m), strides=(-n,n))

关于python - NumPy:将一维数组转换并 reshape 为带有零的二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64533802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com