小编e9e*_*e9s的帖子

将HDF5文件读入numpy数组

我有以下代码将hdf5文件作为numpy数组读取:

hf = h5py.File('path/to/file', 'r')
n1 = hf.get('dataset_name')
n2 = np.array(n1)
Run Code Online (Sandbox Code Playgroud)

当我打印n2我得到这个:

Out[15]:
array([[<HDF5 object reference>, <HDF5 object reference>,
        <HDF5 object reference>, <HDF5 object reference>...
Run Code Online (Sandbox Code Playgroud)

如何阅读HDF5 object reference查看存储在其中的数据?

python numpy hdf5 h5py

8
推荐指数
5
解决办法
2万
查看次数

多个可选参数python

所以我有一个带有几个可选参数的函数,如下所示:

def func1(arg1, arg2, optarg1=None, optarg2=None, optarg3=None):
Run Code Online (Sandbox Code Playgroud)

Optarg1和optarg2 通常一起使用,如果指定了这两个args,则不使用optarg3.相反,如果指定了optarg3,则不使用optarg1和optarg2.如果它是一个可选参数,则函数很容易"知道"使用哪个参数:

if optarg1 != None:
    do something
else:
    do something else 
Run Code Online (Sandbox Code Playgroud)

我的问题是,当有多个可选参数并且并非总是指定所有参数时,如何"告诉"函数使用哪个可选参数?用**kwargs解析参数的方法是什么?

optional-arguments python-3.x

6
推荐指数
2
解决办法
1万
查看次数

如何使用非分隔符熊猫将索引拆分为多索引

我有这个数据框:

   index         0
idxaa1cx1    some_text
idxbb2cx2    some_text
idxcc3cx3    some_text
Run Code Online (Sandbox Code Playgroud)

我想将索引拆分为多索引,如下所示:

  idx_1      idx_2        0
  idxa      a1cx1      some_text
  idxb      b2cx2      some_text
  idxc      c3cx3      some_text
Run Code Online (Sandbox Code Playgroud)

我试过这个:

df.index = pd.MultiIndex.from_tuples([tuple(idx.split(idx[:3][-5:])) for idx in df.index])
Run Code Online (Sandbox Code Playgroud)

返回:

idx_1    idx_2        0
          a1cx1      some_text
          b2cx2      some_text
          c3cx3      some_text
Run Code Online (Sandbox Code Playgroud)

但 idx_1 列是空白的。我也试过:

df.index = pd.MultiIndex.from_tuples([tuple({idx[:3]:idx[-5:]}) for idx in df.index])
Run Code Online (Sandbox Code Playgroud)

只返回:

idx_1        0
idxa      some_text
idxb      some_text
idxc      some_text
Run Code Online (Sandbox Code Playgroud)

并且不返回字典的“值”。我的问题是如何按任意长度拆分索引并获得多列?

python dataframe pandas

4
推荐指数
1
解决办法
2394
查看次数

在每7行中,获得第n行pandas

我有一个df这样的大约1000行:

      0        1
0  1.345    2.456
1  2.123    3.564
2  0.023    3.548
3  3.457    2.456
4  1.754    3.564
5  0.905    3.548
6  3.674    7.543
7  9.443    6.4433...
Run Code Online (Sandbox Code Playgroud)

它的组织方式是每7行构成一组"数据"(数据不能在这里排序).在7行的每个"组"中,我想获得第一行,所以我的新数据框看起来像:

      0        1
0  1.345    2.456
7  9.443    6.4433
Run Code Online (Sandbox Code Playgroud)

我可以通过创建一个重复1-7并仅按该列过滤的新列来解决它...

      0        1    groupby_col
0  1.345    2.456        1
1  2.123    3.564        2
2  0.023    3.548        3
3  3.457    2.456        4
4  1.754    3.564        5
5  0.905    3.548        6
6  3.674    7.543        7
7  9.443    6.4433       1...
Run Code Online (Sandbox Code Playgroud)

然后...

df[df['groupby_col'] == 1]
Run Code Online (Sandbox Code Playgroud)

我有没有办法在熊猫中做到这一点,而无需创建额外的列然后过滤?

python pandas

2
推荐指数
1
解决办法
460
查看次数

我怎样才能将它组合成一个单行 - bash

因此,我希望以递归方式搜索具有数千个文件夹的目录以获取特定的文件扩展名,并获取添加的日期,然后按特定年份过滤.下面的代码有效但有没有办法可以转换为单行代码?

  1. 获取所有以xml结尾的文件并写入tmp.txt

    find . -name "*xml" >> tmp.txt  
    
    Run Code Online (Sandbox Code Playgroud)
  2. 获取tmp.txt中所有这些文件的权限信息和时间戳信息

    foreach i ( ` cat tmp.txt ` )
    ls -ltrh $i >> tmp2.txt
    end
    
    Run Code Online (Sandbox Code Playgroud)
  3. 第8列包含日期作为年份,因此获取年份大于特定2014年的所有文件...

    awk '$8 >=2014' tmp2.txt >> tmp3.txt
    
    Run Code Online (Sandbox Code Playgroud)

linux bash shell

1
推荐指数
1
解决办法
58
查看次数

标签 统计

python ×3

pandas ×2

bash ×1

dataframe ×1

h5py ×1

hdf5 ×1

linux ×1

numpy ×1

optional-arguments ×1

python-3.x ×1

shell ×1