2024-04-29 20:25:24 发布
网友
我试图从一个二维矩阵中得到(nRows,nCols)的值,但是当它是一行时(即x=np.数组(4.ncoos)返回到shape(1.ncoos)的值,因此将返回到shape(1.ncoos)的值(大于1.4)
有什么建议可以让我的陈述更具适应性?它是为一个在许多程序中使用的函数,应该同时使用单行和多行材质。谢谢!在
您可以创建一个返回行和列元组的函数,如下所示:
def rowsCols(a): if len(a.shape) > 1: rows = a.shape[0] cols = a.shape[1] else: rows = a.shape[0] cols = 0 return (rows, cols)
其中a是您输入到函数的数组。下面是使用函数的示例:
a
这将打印rows 3 and columns 0,然后rows 4 and columns 3。或者,您可以使用atleast_2d函数来实现更简洁的方法:
rows 3 and columns 0
rows 4 and columns 3
atleast_2d
(r, c) = np.atleast_2d(x).shape print('rows {}, cols {}'.format(r, c)) (r, c) = np.atleast_2d(y).shape print('rows {}, cols {}'.format(r, c))
它打印rows 1, cols 3和{}。在
rows 1, cols 3
如果您的函数使用
(nRows, nCols) = x.shape
它还可能对x进行索引或迭代,假设它有nRows行,例如
x
nRows
通常的做法是重塑x(根据需要),使其至少有1行。换句话说,将形状从(n,)更改为(1,n)。在
(n,)
(1,n)
x = np.atleast_2d(x)
做得很好。在函数内部,对x的这种更改不会影响函数外部的x。这样,您就可以通过函数将x视为2d,而不是不断地查看它是否是1dv2d
Python: How can I force 1-element NumPy arrays to be two-dimensional?
这是之前许多关于将1d数组视为2d数组的问题之一
您可以创建一个返回行和列元组的函数,如下所示:
其中
^{pr2}$a
是您输入到函数的数组。下面是使用函数的示例:这将打印
rows 3 and columns 0
,然后rows 4 and columns 3
。或者,您可以使用atleast_2d
函数来实现更简洁的方法:它打印}。在
rows 1, cols 3
和{如果您的函数使用
它还可能对
^{pr2}$x
进行索引或迭代,假设它有nRows
行,例如通常的做法是重塑
x
(根据需要),使其至少有1行。换句话说,将形状从(n,)
更改为(1,n)
。在做得很好。在函数内部,对
x
的这种更改不会影响函数外部的x
。这样,您就可以通过函数将x
视为2d,而不是不断地查看它是否是1dv2dPython: How can I force 1-element NumPy arrays to be two-dimensional?
这是之前许多关于将1d数组视为2d数组的问题之一
相关问题 更多 >
编程相关推荐