小编BFT*_*FTM的帖子

Numpy:用向量元素划分每一行

假设我有一个numpy数组:

data = np.array([[1,1,1],[2,2,2],[3,3,3]])
Run Code Online (Sandbox Code Playgroud)

我有一个相应的"矢量:"

vector = np.array([1,2,3])
Run Code Online (Sandbox Code Playgroud)

如何对data每行进行减法或除法运算,结果如下:

sub_result = [[0,0,0], [0,0,0], [0,0,0]]
div_result = [[1,1,1], [1,1,1], [1,1,1]]
Run Code Online (Sandbox Code Playgroud)

长话短说:如何使用与每行对应的一维标量数组对2D数组的每一行执行操作?

python arrays numpy scipy

102
推荐指数
4
解决办法
7万
查看次数

pandas:在DataFrame中组合两列

我有一个DataFrame包含多个列的pandas :

Index: 239897 entries, 2012-05-11 15:20:00 to 2012-06-02 23:44:51
Data columns:
foo                   11516  non-null values
bar                   228381  non-null values
Time_UTC              239897  non-null values
dtstamp               239897  non-null values
dtypes: float64(4), object(1)
Run Code Online (Sandbox Code Playgroud)

where foobar是包含相同数据的列,但命名方式不同.是否有移动从而弥补了行的方式foo进入bar,最好同时保持的名字bar

最后,DataFrame应显示为:

Index: 239897 entries, 2012-05-11 15:20:00 to 2012-06-02 23:44:51
Data columns:
bar                   239897  non-null values
Time_UTC              239897  non-null values
dtstamp               239897  non-null values
dtypes: float64(4), object(1)
Run Code Online (Sandbox Code Playgroud)

这就是组成bar的NaN值被来自的值替换foo.

python dataframe pandas

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

具有相同名称的Python模块(即,在包中重用标准模块名称)

假设我有一个包含模块的包:

SWS/
  __init.py__
  foo.py
  bar.py
  time.py
Run Code Online (Sandbox Code Playgroud)

并且模块需要引用彼此包含的功能.似乎我遇到了time.py模块问题,因为有一个标准模块同名.

例如,在我的foo.py模块需要我SWS.time和标准python time 模块的情况下,我遇到麻烦,因为解释器将查看包内部并time.py在它遇到标准time模块之前找到我的模块.

有没有办法解决?这是禁止的情况,模块名称是否应该重复使用?

关于包装哲学的任何解决方案和意见在这里都很有用.

python namespaces module package

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

pandas使用datetime对象重新索引DataFrame

是否可以DataFrame使用由datetime对象组成的列重新编制大熊猫的索引?

我有一个包含df以下列的DataFrame :

Int64Index: 19610 entries, 0 to 19609
Data columns:
cntr                  19610  non-null values  #int
datflt                19610  non-null values  #float
dtstamp               19610  non-null values  #datetime object
DOYtimestamp          19610  non-null values  #float
dtypes: int64(1), float64(2), object(1)
Run Code Online (Sandbox Code Playgroud)

我可以df轻松地重新索引以及DOYtimestamp:df.reindex(index=df.dtstamp)DOYtimestamp具有以下值:

>>> df['DOYtimestamp'].values
    array([ 153.76252315,  153.76253472,  153.7625463 , ...,  153.98945602,
    153.98946759,  153.98947917])
Run Code Online (Sandbox Code Playgroud)

但我想重新索引dtstamp由datetime对象组成的DataFrame ,以便我直接从索引生成不同的时间戳.该dtstamp列的值如下所示:

 >>> df['dtstamp'].values
     array([2012-06-02 18:18:02, 2012-06-02 18:18:03, 2012-06-02 18:18:04, ...,
     2012-06-02 23:44:49, 2012-06-02 23:44:50, 2012-06-02 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas reindex

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

查找文件中的哪些行包含某些字符

有没有办法找出一个字符串是否包含一组python中的任何一个字符?

使用单个字符执行此操作非常简单,但我需要检查并查看字符串是否包含任何一组错误字符.

具体来说,假设我有一个字符串:

s = 'amanaplanacanalpanama~012345'
Run Code Online (Sandbox Code Playgroud)

我想看看字符串是否包含任何元音:

bad_chars = 'aeiou'
Run Code Online (Sandbox Code Playgroud)

并在文件中每一行的for循环中执行此操作:

if [any one or more of the bad_chars] in s:
    do something
Run Code Online (Sandbox Code Playgroud)

我正在扫描一个大文件,所以如果有更快的方法,这将是理想的.此外,不是每个坏人都必须被检查---只要遇到一个足以结束搜索的人.

我不确定是否有内置函数或简单的方法来实现它,但我还没有遇到过任何问题.任何指针将非常感谢!

python string search

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

Python:将值重新赋值给变量(使用函数)

可能重复:
Python:如何通过引用传递变量?

如何将值重新赋值给作为函数参数传递的变量?

例如,我要做的是:

foo = True

def convert(foo):
    if foo == True:
        foo = 'on'
    elif foo == False:
        foo = 'off'
    return foo
Run Code Online (Sandbox Code Playgroud)

foo现在在哪里是一个字符串.上述方法的问题是,为了foo从布尔类型更改为字符串类型,必须传递以下内容:

foo = convert(foo)
Run Code Online (Sandbox Code Playgroud)

而我希望做的事情如下:

convert(foo)
Run Code Online (Sandbox Code Playgroud)

要么,

foo.convert()
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python variables function python-2.7

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

matplotlib图中的链接时间轴(x轴)

这是基于生成第二个x轴,如上一篇文章所述:

matplotlib:添加透明背景的第二轴()?

下面是生成具有两个x轴的图的代码,其表示相同数据的两个不同时间单位:相对时间(rel_time)和绝对时间(abs_time).虽然上述方法很好地生成了两个轴,但数据在它们之间的缩放比例不同.

如何生成具有两个链接的x轴的图?也就是说,在每个轴上绘制的数据应该与另一个轴对齐.

此外,有没有办法在不绘制数据(y)两次的情况下执行此操作?最后,数据应该对齐,因此第二个图就是生成一个新轴.

代码如下:

# Based on question:
# https://stackoverflow.com/questions/7761778/matplotlib-adding-second-axes-with-transparent-background
import time
import numpy as np
import matplotlib.pyplot as plt

# Plot Data
rel_time = np.arange(-10.0, 40)  # seconds
abs_time = rel_time + time.time()  # epoch time
y = np.array([1.1, 1.2, 1.2, 1.1, 1.2, 1.1, 1.3, 1.3, 1.2, 1.1, 1.4, 1.7, 
              2.5, 2.6, 3.5, 4, 4.3, 4.8, 5, 4.9, 5.3, 5.2, 5.5, 5.1, 
              5.4, 5.6, 5.1, 6, 6.2, 6.2, 5.5, 6.1, 5.4, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib figure

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