我将遍历不同的numpy数组。有些是2D的,有些是1D的。如果评估的数组是1D,我希望将其平铺为2D数组。示例:
c = {'a': np.array([1, 2, 3]), 'b' : np.array([[1, 2, 3], [4, 5, 6]])}
for k in c:
if c[k].shape #is 1D:
c[k] = np.tile(c[k], (len(c[k]),1))
我不知道如何处理这种情况。有什么想法吗?我试过像这样的东西
aa = np.array([1, 2, 3])
aa.shape[0]
# 3
aa.shape[1]
# Gives an out of range error
我猜可以通过发现没有第二维的数组来发现它是一个一维的数组。但我不知道如何在if语句中对此进行编码。
谢谢
发布于 2018-06-09 00:09:54
NumPy数组有一个名为ndim
的属性,它准确地表示了您认为它的作用:数组的维数。所以,你可以这样做:
if c[k].ndim == 1:
# do something
发布于 2018-06-09 00:09:05
您需要检查array.shape
有多少个元素。因此,您可以通过运行以下命令来检查1D数组
if len(c[k].shape) == 1
发布于 2018-06-09 00:11:05
你可以做到
if len(aa.shape)==1:
# something
https://stackoverflow.com/questions/50764517
复制相似问题