小编Sau*_*tro的帖子

python pandas将数据帧展平为列表

我有一个这样的df:

import pandas
a=[['1/2/2014', 'a', '6', 'z1'], 
   ['1/2/2014', 'a', '3', 'z1'], 
   ['1/3/2014', 'c', '1', 'x3'],
   ]
df = pandas.DataFrame.from_records(a[1:],columns=a[0])
Run Code Online (Sandbox Code Playgroud)

我想要展平df所以它是一个连续的列表,如下所示:

['1/2/2014', 'a', '6', 'z1', '1/2/2014', 'a', '3', 'z1','1/3/2014', 'c', '1', 'x3']

我可以循环遍历行和extend列表,但这是一种更简单的方法吗?

python numpy list dataframe pandas

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

设置matplotlib 3d绘图长宽比?

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
Run Code Online (Sandbox Code Playgroud)

设置宽高比适用于2d图:

ax = plt.axes()
ax.plot([0,1],[0,10])
ax.set_aspect('equal','box')
Run Code Online (Sandbox Code Playgroud)

但不适用于3D:

ax = plt.axes(projection='3d')
ax.plot([0,1],[0,1],[0,10])
ax.set_aspect('equal','box')
Run Code Online (Sandbox Code Playgroud)

是否有不同的3d案例语法,或者它没有实现?

python matplotlib

36
推荐指数
10
解决办法
2万
查看次数

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
查看次数

NumPy数组,更改索引列表中不存在的值

我有一个numpy像这样的数组:

a = np.arange(30)
Run Code Online (Sandbox Code Playgroud)

我知道我可以indices=[2,3,4]使用例如花式索引来替换位置上的值:

a[indices] = 999
Run Code Online (Sandbox Code Playgroud)

但是如何替换不在的位置的值indices?会是这样的吗?

a[ not in indices ] = 888
Run Code Online (Sandbox Code Playgroud)

谢谢!

python arrays replace numpy multidimensional-array

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

用透明标记绘图但不透明边缘

我正在尝试使用具有固定颜色边缘的透明标记在matplotlib中制作绘图.但是,我似乎无法实现透明填充的标记.

我这里有一个最小的工作示例:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(10)
y1 = 2*x + 1
y2 = 3*x - 5

plt.plot(x,y1, 'o-', lw=6, ms=14)
plt.plot(x,y2, 'o', ms=14, markerfacecolor=None, alpha=0.5, markeredgecolor='red', markeredgewidth=5)

plt.show()
Run Code Online (Sandbox Code Playgroud)

我尝试了两种在线发现的技术来实现这一目的:1)设置alpha参数.然而,这使得标记边缘也是透明的,这不是期望的效果.2)设置markerfacecolor = None,虽然这对我的情节没有影响

请问有解决方案吗?

python plot transparency numpy matplotlib

33
推荐指数
2
解决办法
3万
查看次数

NumPy/OpenCV 2:如何裁剪非矩形区域?

我有一组形成一个形状的点(闭合折线).现在我想从这个形状内的一些图像中复制/裁剪所有像素,剩下的就是黑色/透明.我该怎么做呢?

例如,我有这个:

在此输入图像描述

我想得到这个:

在此输入图像描述

python opencv numpy image-processing

32
推荐指数
2
解决办法
3万
查看次数

Numpy和Pandas的计算有区别吗?

我假设我要使用Numpy数组,我写了一堆代码.原来我通过Pandas加载的数据.我现在记得我把它加载到Pandas中因为我在Numpy中加载它时遇到了一些问题.我相信数据太大了.

因此我想知道,使用Numpy和Pandas时计算能力是否存在差异?

如果Pandas效率更高,那么我宁愿为Pandas重写我的所有代码,但如果没有效率那么我只会使用一个numpy数组......

python numpy pandas

31
推荐指数
3
解决办法
2万
查看次数

numpy中frompyfunc和vectorize之间的区别

numpy中vectorizefrompyfunc有什么区别?

两者看起来非常相似.每个人的典型用例是什么?

编辑:正如JoshAdel所指出的,这个课程vectorize似乎是建立在上面的frompyfunc.(见来源).我还不清楚是否frompyfunc可能有任何未被vectorize...... 覆盖的用例

python arrays numpy vectorization

30
推荐指数
3
解决办法
4134
查看次数

安装lapack for numpy

运行Ubuntu 11.10 + python2.7 ...从源代码构建numpy并安装它,但是当我去安装它时,我得到了

ImportError: /usr/lib/liblapack.so.3gf: undefined symbol: ATL_chemv
Run Code Online (Sandbox Code Playgroud)

当它试图从numpy.linalg导入lapack_lite时.我试图从头开始重建lapack,但它似乎只是制造

/usr/local/lib/libblas.a
/usr/local/lib/liblapack.a
/usr/local/lib/libtmglib.a
Run Code Online (Sandbox Code Playgroud)

和.so文件..so.3gf来自哪里,我该如何解决?

python installation numpy lapack

30
推荐指数
2
解决办法
3万
查看次数

更快的numpy笛卡尔到球坐标转换?

我有一个来自3轴accellerometer(XYZ)的300万个数据点的数组,我想在包含等效球坐标(r,theta,phi)的数组中添加3列.以下代码有效,但似乎太慢了.我怎么能做得更好?

import numpy as np
import math as m

def cart2sph(x,y,z):
    XsqPlusYsq = x**2 + y**2
    r = m.sqrt(XsqPlusYsq + z**2)               # r
    elev = m.atan2(z,m.sqrt(XsqPlusYsq))     # theta
    az = m.atan2(y,x)                           # phi
    return r, elev, az

def cart2sphA(pts):
    return np.array([cart2sph(x,y,z) for x,y,z in pts])

def appendSpherical(xyz):
    np.hstack((xyz, cart2sphA(xyz)))
Run Code Online (Sandbox Code Playgroud)

python numpy coordinate

29
推荐指数
4
解决办法
3万
查看次数