相关疑难解决方法(0)

如何获得pandas系列的元素逻辑NOT?

我有一个Series包含布尔值的pandas 对象.如何获得包含NOT每个值的逻辑的系列?

例如,考虑一个系列包含:

True
True
True
False
Run Code Online (Sandbox Code Playgroud)

我想要的系列将包含:

False
False
False
True
Run Code Online (Sandbox Code Playgroud)

这似乎应该相当简单,但显然我错了我的mojo =(

python boolean-logic pandas

197
推荐指数
4
解决办法
10万
查看次数

python tilde unary operator as negation numpy bool array

应该是一个简单的问题,但我无法在任何地方找到答案.~python中的运算符被记录为按位反转运算符.精细.我注意到看似精神分裂的行为,即:

~True -> -2
~1 -> -2
~False -> -1
~0 -> -1
~numpy.array([True,False],dtype=int) -> array([-2,-1])
~numpy.array([True,False],dtype=bool) -> array([False,True])
Run Code Online (Sandbox Code Playgroud)

在前4个示例中,我可以看到python正在实现(如文档所述)~x = -(x+1),输入被视为int,即使它是布尔值.因此,对于标量布尔值,~不被视为逻辑否定.并非在使用int类型的布尔值定义的numpy数组上的行为相同.

~那么为什么在布尔数组上作为逻辑否定运算符工作(另请注意:~numpy.isfinite(numpy.inf) -> True?)?

我必须not()在标量上使用它是非常烦人的,但是not()无法否定数组.然后对于一个数组,我必须使用~,但~不会否定一个标量......

python boolean numpy multidimensional-array

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

使用NaN绘制/创建数据集的散点图

我想使用pylab绘制散点图,但是,我的一些数据是NaN这样的:

a = [1, 2, 3]
b = [1, 2, None]
Run Code Online (Sandbox Code Playgroud)

pylab.scatter(a,b) 不起作用.

有没有什么方法可以在不显示这些NaN价值的情况下绘制实际价值点?

python matplotlib

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

matplotlib中的密度图(热图)

我有一个坐标列表:

y,x
445.92,483.156
78.273,321.512
417.311,204.304
62.047,235.216
87.24,532.1
150.863,378.184
79.981,474.14
258.894,87.74
56.496,222.336
85.105,454.176
80.408,411.672
90.656,433.568
378.027,441.296
433.964,290.6
453.606,317.648
383.578,115.432
128.232,312.496
116.276,93.536
94.072,222.336
52.226,327.308
321.663,187.56
392.972,279.008
Run Code Online (Sandbox Code Playgroud)

我想使用matplotlib根据这些点绘制密度图(或热图).我正在使用pcolormesh和contourf.我的问题是pcolormesh没有相同的音高大小: 在此输入图像描述

这是代码:

x, y = np.genfromtxt('pogba_t1314.csv', delimiter=',', unpack=True)

#print(x[1], y[1])
y = y[np.logical_not(np.isnan(y))]
x = x[np.logical_not(np.isnan(x))]
k = gaussian_kde(np.vstack([x, y]))
xi, yi = np.mgrid[x.min():x.max():x.size**0.5*1j,y.min():y.max():y.size**0.5*1j]
zi = k(np.vstack([xi.flatten(), yi.flatten()]))

fig = plt.figure(figsize=(9,10))
ax1 = fig.add_subplot(211)


ax1.pcolormesh(xi, yi, zi.reshape(xi.shape), alpha=0.5)

ax1.plot(y,x, "o")
ax1.set_xlim(0, 740)
ax1.set_ylim(515, 0)

#overlay soccer field
im = plt.imread('statszone_football_pitch.png')
ax1.imshow(im, extent=[0, 740, 0, 515], aspect='auto') …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

从numpy 2-D数组中删除NAN

此问题类似,我想从2-D numpy数组中删除一些NAN.但是,我没有删除具有NAN的整行,而是想从数组的每一行中删除相应的元素.例如(为简单起见使用列表格式)

x=[ [1,2,3,4],
    [2,4,nan,8],
    [3,6,9,0] ]
Run Code Online (Sandbox Code Playgroud)

会成为

x=[ [1,2,4],
    [2,4,8],
    [3,6,0] ]
Run Code Online (Sandbox Code Playgroud)

我可以想象使用一个numpy.where来确定每一行中出现NAN的位置,然后使用一些循环和逻辑语句从旧数组中创建一个新数组(跳过NAN和其他行中的相应元素)但对我来说似乎不是一个非常简化的做事方式.还有其他想法吗?

python numpy nan

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