小编gab*_*how的帖子

在MATLAB代码中查找函数

我需要找到我的代码中的所有位置(文件夹中的几个M文件),其中我使用了特定的函数(unique在本例中).

你知道是否有可能吗?

matlab function locate

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

将参数传递给cellfun matlab

你好我有一个char的单元格数组(由下划线分隔),我想转换为double.我是在for循环中完成的,但由于尺寸很大,需要花费很多时间.我想用cellfun,但我不知道如何通过分隔符.

你能帮助我吗?

listofwords = {'02_04_04_52';'02_24_34_02'};
for i = 1 : size(listofwords,1)
    listofwords_double(i,:) = str2double(strsplit(listofwords{i},'_'))./1000;
end

listofwords_double2= cellfun(@strsplit , listofwords);
Run Code Online (Sandbox Code Playgroud)

基准

按照Divakar的要求

>> benchmark1
Speedup with EVAL over NO-LOOP-SSCANF = -46.3398%
>> benchmark1
Speedup with EVAL over NO-LOOP-SSCANF = -46.4068%
>> benchmark1
Speedup with EVAL over NO-LOOP-SSCANF = -47.1129%
>> benchmark1
Speedup with EVAL over NO-LOOP-SSCANF = -46.2882%
>> benchmark1
Speedup with EVAL over NO-LOOP-SSCANF = -46.2325%
>> benchmark1
Speedup with EVAL over NO-LOOP-SSCANF = -46.0161%
>> …
Run Code Online (Sandbox Code Playgroud)

performance matlab delimiter cell-array

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

查找包含NaN的行的indeces

在熊猫数据框中

matrix
Run Code Online (Sandbox Code Playgroud)

我想找到NaN的行(索引).

我想做的就是在列中找到NaN

  idx_nan = matrix.columns[np.isnan(matrix).any(axis=1)]
Run Code Online (Sandbox Code Playgroud)

但它不起作用 matrix.rows

在行中查找项目的等价物是什么?

python numpy pandas

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

找到相等的时间并逐步添加常量

我有一个df包含一些时间戳的数据帧

df['Date'].values
Out[16]: 
array(['2015-03-25T14:36:39.199994000', '2015-03-25T14:36:39.199994000',
       '2015-03-26T10:05:03.699999000', '2015-04-19T16:01:49.680009000',
       '2015-04-19T16:36:10.040007000', '2015-04-19T16:36:10.040007000',
       '2015-04-19T16:36:10.040007000'], dtype='datetime64[ns]')
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样,第一个和第二个时间戳是相等的,但也是最后一个3.

我想扫描数据帧,如果有时间戳相等,则保持第一个,并以相等的其他方式逐步添加5秒.新的数据框应该是这样的

df['Date'].values
Out[16]: 
array(['2015-03-25T14:36:39.199994000', '2015-03-25T14:36:44.199994000',
       '2015-03-26T10:05:03.699999000', '2015-04-19T16:01:49.680009000',
       '2015-04-19T16:36:10.040007000', '2015-04-19T16:36:15.040007000',
       '2015-04-19T16:36:20.040007000'], dtype='datetime64[ns]')
Run Code Online (Sandbox Code Playgroud)

有没有pythonic的方法没有循环..我正在考虑根据时间戳分组,但后来我不知道如何继续...

python datetime group-by pandas

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

使用滚动窗口熊猫计算百分位数

我创建了一个pandas数据帧

df = pd.DataFrame(data=[[1],[2],[3],[1],[2],[3],[1],[2],[3]])
df
Out[19]: 
   0
0  1
1  2
2  3
3  1
4  2
5  3
6  1
7  2
8  3
Run Code Online (Sandbox Code Playgroud)

我计算长度= 3的窗口的75%百分位数

df.rolling(window=3,center=False).quantile(0.75)
Out[20]: 
     0
0  NaN
1  NaN
2  2.0
3  2.0
4  2.0
5  2.0
6  2.0
7  2.0
8  2.0
Run Code Online (Sandbox Code Playgroud)

然后检查我分别在第一个窗口计算75%

df.iloc[0:3].quantile(0.75)
Out[22]: 
0    2.5
Name: 0.75, dtype: float64
Run Code Online (Sandbox Code Playgroud)

为什么我得到不同的价值?

python percentile dataframe pandas

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

通过重叠Windows在数组上循环

我有一个numpy的数组:

seq = np.array(range(1,31))

In [24]: seq
Out[24]: array([ 1,  2,  3, ..., 28, 29, 30])
Run Code Online (Sandbox Code Playgroud)

我想将其划分为长度为n的重叠(或非重叠)部分。

n=7
overlap = 3
windowed_seq = windowing(seq,n,overlap)

In [24]: windowed_seq
Out[24]: [ 1,  5,   ...,    17, 21, 
           2,  6,   ...,    18, 22, 
           3,  7,   ...,    19, 23, 
           4,  8,   ...,    20, 24, 
           5,  9,   ...,    21, 25, 
           6,  10,  ...,    22, 26, 
           7,  11,  ...,    23, 27] 
Run Code Online (Sandbox Code Playgroud)

最后一列:

25,
26,
27,
28,
29,
30,
31,
?]
Run Code Online (Sandbox Code Playgroud)

被省略,因为缺少一个元素来完成窗口。

我在互联网上找到了此解决方案,但不适用于数组...

https://www.safaribooksonline.com/library/view/python-cookbook-2nd/0596007973/ch19s08.html

import itertools
def windows(iterable, …
Run Code Online (Sandbox Code Playgroud)

python overlap sliding-window

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

合并 pandas 数据框索引

如何合并 2 个索引

index1
Out[8]: Int64Index([22, 23, 24, 25, 32, 33, 34], dtype='int64')

index2
Out[8]: Int64Index([20, 23, 24, 25, 32, 33, 34], dtype='int64')
Run Code Online (Sandbox Code Playgroud)

从而获得

index3
Out[8]: Int64Index([20, 22, 23, 24, 25, 32, 33, 34], dtype='int64')
Run Code Online (Sandbox Code Playgroud)

包含没有重复项的index1和index2?

python dataframe indices pandas

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

设置一个字符串作为pandas DataFrame的索引

给定数据框 df

df = pd.DataFrame([1,2,3,4])
print(df)
   0
0  1
1  2
2  3
3  4
Run Code Online (Sandbox Code Playgroud)

我想将其修改为

print(df)
   0
A  1
A  2
A  3
A  4
Run Code Online (Sandbox Code Playgroud)

python indexing dataframe pandas

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

使用颜色格式化 Excel 文件 pd.ExcelWriter

我有一个数据框 df

df
Out[15]: 
           Subject ID  
StartDate                                                                    
2017-11-06        ID1  
2017-11-07        ID1
2017-11-08        ID2  
2017-11-10        ID3  
Run Code Online (Sandbox Code Playgroud)

我把它保存在一个excel文件中

writer = pd.ExcelWriter(os.path.join(folders_path,'summary.xls'))
df.to_excel(writer,'Sheet1')
writer.save() 
Run Code Online (Sandbox Code Playgroud)

但是我想根据 来格式化行的颜色Subject ID,即我想为每个 ID 使用不同的颜色

python excel pandas

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

在熊猫数据框中替换nan

给出数据帧df

df = pd.DataFrame(data=[[np.nan,1],
                  [np.nan,np.nan],
                  [1,2],
                  [2,3],
                  [np.nan,np.nan],
                  [np.nan,np.nan],
                  [3,4],
                  [4,5],
                  [np.nan,np.nan],
                  [np.nan,np.nan]],columns=['A','B'])


df
Out[16]: 
     A    B
0  NaN  1.0
1  NaN  NaN
2  1.0  2.0
3  2.0  3.0
4  NaN  NaN
5  NaN  NaN
6  3.0  4.0
7  4.0  5.0
8  NaN  NaN
9  NaN  NaN
Run Code Online (Sandbox Code Playgroud)

我需要nan使用以下规则替换:

1)如果nan在开始时用nan之后的第一个值替换

2)如果nan处于2个或更多个值的中间,则用这些值的平均值代替nan

3)如果nan在末尾替换为最后一个值

df
Out[16]: 
     A    B
0  1.0  1.0
1  1.0  1.5
2  1.0  2.0
3  2.0  3.0
4  2.5  3.5
5  2.5  3.5
6  3.0  4.0
7  4.0 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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