小编fos*_*all的帖子

Jupyter显示没有plt.show()的情节

我正在使用Python 2.7的Jupyter笔记本.像这样导入matplotlib:

%matplotlib inline    
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)

但我发现了一件事.当我在Spyder中使用Python时,我总是必须在python脚本的末尾使用`plt.show()命令来查看这些图.

在Jupyter中,我不需要这个命令来查看情节.我收到此错误消息:

[<matplotlib.lines.Line2D at 0x91615d0>]
Run Code Online (Sandbox Code Playgroud)

但它仍然是一个阴谋.这是为什么?

python matplotlib jupyter

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

将多维内存视图传递给 c 函数

以下线程中的答案对我没有帮助,因为我有多维数组Passing memoryview to C function

我有以下测试代码:

头文件:

//cm.h
double per(double **marr,int rows,int cols);
Run Code Online (Sandbox Code Playgroud)

带有 C 函数的文件

//cm.c
#include <stdio.h>
double per(double **marr,int rows,int cols){
    int i,j;
    for (i=0;i<rows;i++){
        for (j=0;j<cols;j++){
            //Just update the array
            marr[i][j] = (double)(i+1)*(j+1);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Cython 文件:

#m.pyz
import numpy as np
cimport numpy as np
from cython.view cimport array as cvarray

cdef extern from 'cm.h':
    double per(double **marr,int rows,int cols);

def test(double[:,::1] x):
    cdef int rows = x.shape[0]
    cdef int cols = …
Run Code Online (Sandbox Code Playgroud)

typed cython multidimensional-array

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

Pandas 布尔索引与 NaN

我有这个玩具示例,它捕获了我真正的问题:

import pandas as pd
import numpy as np
df = pd.DataFrame({'A': ['car there is','car not working', 'bus there is']})
df.iloc[1] = np.nan
idx = df['A'].str.contains('car')
df['IsCar'] = 0
df.loc[idx,'IsCar'] = 1
Run Code Online (Sandbox Code Playgroud)

当我尝试运行此代码时,收到以下错误消息:

ValueError: cannot index with vector containing NA / NaN values
Run Code Online (Sandbox Code Playgroud)

为什么我不能这样做。有没有修复我不必用其他东西替换 NaN 的情况?

python dataframe pandas

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

熊猫:缓冲区的维数错误

以下是我的代码(仅模拟数字):

import pandas as pd 
d = {'x' : [1,4,6,9],
     'y' : [1,4,6,8]}
df = pd.DataFrame(d)
ct = pd.concat([df.x,
                pd.cut(df.y, bins=2)], axis=1)
gp = ct.groupby('x').y.value_counts().unstack().fillna(0)
print(gp)
print(gp[gp.columns[0]])
gp[gp.columns[0]] = gp[gp.columns[0]]/10
Run Code Online (Sandbox Code Playgroud)

print(gp) 得到:

y  (0.993, 4.5]  (4.5, 8.0]
x                          
1           1.0         0.0
4           1.0         0.0
6           0.0         1.0
9           0.0         1.0
Run Code Online (Sandbox Code Playgroud)

print(gp[gp.columns[0]]) 给出这个:

x
1    1.0
4    1.0
6    0.0
9    0.0
Name: (0.993, 4.5], dtype: float64
Run Code Online (Sandbox Code Playgroud)

但是以下行:

gp[gp.columns[0]] = gp[gp.columns[0]]/10
Run Code Online (Sandbox Code Playgroud)

抛出此错误:

ValueError: Buffer has wrong number of dimensions (expected 1, …
Run Code Online (Sandbox Code Playgroud)

python pandas valueerror

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

excel表中第一个单元格的位置

我经常使用Excel表格.它使得在一个工作表中拥有多个表成为可能.但是我在VBA遇到了一个我不知道如何解决的问题.

我们假设我的电子表格中有一个名为"tbl"的表.它包含以下数据:

id value
1  1000
1  2000
2  3000
2  4000
Run Code Online (Sandbox Code Playgroud)

我有以下代码可行:

Sub test()
    Dim rng As Range
    Dim arr() As Variant
    Set rng = ActiveSheet.ListObjects("tbl").DataBodyRange
    arr = rng.Value
End Sub
Run Code Online (Sandbox Code Playgroud)

这段代码将把整个表放入arr.但有些情况下我只想要表中的某些行.让我们说我想要第4行和第5行,即:

2  3000
2  4000
Run Code Online (Sandbox Code Playgroud)

以下代码将解决这个问题:

arr = Range("A4:B5")
Run Code Online (Sandbox Code Playgroud)

但有些情况下,我的电子表格中有很多位于不同位置的表格.因此,我需要找出表中第一个单元格所在的位置(左上角).如果它位于K1,我需要同时获得列和行(K和1).

是否有捷径可寻?

excel vba

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