我有一个函数,可以将一些数据加载到一个 2D 的 numpy 数组中。我想让函数调用时指定从开头和结尾删除的行数和列数。如果没有指定参数,它会返回所有数据。
import numpy as np
function load_data(min_row, max_row, min_col, max_col):
a = np.loadtxt('/path/to/mydata.txt')[min_row:max_row,min_col:max_col]
现在,
min_row
和min_col
可以默认为0
。如何设置max_col
和max_row
的默认值以引用数组的末尾?我的唯一解决方案是:
function load_data(min_row=0, max_row=None, min_col=0, max_col=None):
a = np.loadtxt('/path/to/mydata.txt')
if not max_row: max_row = a.shape[0]
if not max_col: max_col = a.shape[1]
a = a[min_row:max_row,min_col:max_col]
有没有更好的解决方案,例如:
function load_data(min_row=0, max_row="end", min_col=0, max_col="end"):
a = np.loadtxt('/path/to/mydata.txt')[min_row:max_row,min_col:max_col]
记录一下,示例数据可能如下:
np.array([[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5]])
None
,直接写成x[2:]
和a[min_row:, min_col:]
。 - eickenberg