假设我有一个数组,我想要一个函数根据预定义的参数a
选择一些列:
extracted_columns = array[:,a].
如果我有例如a = np.arange(10)
,我将获得前十列,
如果我想定义一个以便在不知道数组大小的情况下选择所有列,该怎么办?
我想设置a = :
以便函数执行
extracted_columns = array[:,:]
但似乎:不能作为参数传递。我还尝试了a = None
,但这给了我一个维度3
的数组,其中第二维等于1
。
有一种很好的方法吗?
谢谢,
答案 0 :(得分:2)
将slice
对象传递给您的函数。
MCVE:
x = np.arange(9).reshape(3, 3)
print(x)
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
a = slice(None)
print(x[:, a])
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
对于您的情况,您可以按以下方式定义一个功能:
def foo(array, a):
return array[:, a]
并称之为:
arr_slice = foo(array, slice(None))