我有一个 3 维 numpy 数组。维度最大可达 128 x 64 x 8192。我想做的是通过成对交换来更改第一个维度的顺序。
到目前为止,我唯一的想法是按正确的顺序创建索引列表。
order = [1,0,3,2...127,126]
data_new = data[order]
Run Code Online (Sandbox Code Playgroud)
我担心这不是很有效,但到目前为止我没有更好的想法
使用argparse,我创建了一个小脚本,其中包含我的分析程序的命令行解析器,它是自制python包的一部分.它工作得很好,但我真的不喜欢如何控制它.
这是代码在脚本本身中的样子
def myAnalysis():
parser = argparse.ArgumentParser(description='''
lala''')
parser.add_argument('-d', '--data',help='')
parser.add_argument('-e', '--option_1', help='', default=False, required=False)
parser.add_argument('-f', '--option_2', help='', default=False, required=False)
# combine parsed arguments
args = parser.parse_args()code here
Run Code Online (Sandbox Code Playgroud)
除此之外,分析包的安装文件中还有更多内容
entry_points={
'console_scripts': [
'py_analysis = edit.__main__:myAnalysis'
]
Run Code Online (Sandbox Code Playgroud)
正如我所说,这没有任何问题.分析我必须使用的一些数据
py_analysis --data path_to_data_file
Run Code Online (Sandbox Code Playgroud)
有时候,我需要一些选择.为此,它可能看起来很糟糕
py_analysis --data path_to_data_file --option_1 True --option_2 True
Run Code Online (Sandbox Code Playgroud)
就我个人而言,这有点难看.我更喜欢类似的东西
py_analysis path_to_data_file --option_1 --option_2
Run Code Online (Sandbox Code Playgroud)
我很确定这是可能的.我只是不知道如何
我有以下问题:
我需要加载几个数据文件.这些文件由我的设备命名,如:
meas98.dat
meas99.dat
meas100.dat
meas101.dat
Run Code Online (Sandbox Code Playgroud)
换句话说,没有前导零.因此,如果我通过文件名获取
os.listdir
Run Code Online (Sandbox Code Playgroud)
它们按字母顺序排列,意味着"meas100.dat"将是第一个.这显然不是我想要实现的目标.问题是这样做最优雅的方式是什么?
我想出的(不雅)方式是:
我很确定python有内置的东西,可以在加载文件时做到这一点......