假设我有一个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数组的每一行执行操作?
我有一个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 foo和bar是包含相同数据的列,但命名方式不同.是否有移动从而弥补了行的方式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.
假设我有一个包含模块的包:
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模块之前找到我的模块.
有没有办法解决?这是禁止的情况,模块名称是否应该重复使用?
关于包装哲学的任何解决方案和意见在这里都很有用.
是否可以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中的任何一个字符?
使用单个字符执行此操作非常简单,但我需要检查并查看字符串是否包含任何一组错误字符.
具体来说,假设我有一个字符串:
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:如何通过引用传递变量?
如何将值重新赋值给作为函数参数传递的变量?
例如,我要做的是:
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)
有任何想法吗?
这是基于生成第二个x轴,如上一篇文章所述:
下面是生成具有两个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)