我知道有很多关于线路交叉点及其背后的数学的讨论.我熟悉数学.
这篇文章很好地解释了一个可以实现的算法:确定两条线是否相交
但是,我想知道是否可以直接在Google地图中执行此操作.我正在谷歌地图上绘制各种线条,我的目的是确定任何给定线条交叉/交叉的线条数量,如果是,则在地理上确定交叉点发生的位置.我想使用设定标准自动渲染线条,这些标准会对交叉点进行处罚并考虑其他优化标准.计算速度是一个因素,因为我有数千行.
下面是我的应用程序的示例图片,线条很有趣.
我有2个列表,其组件是xts对象(co和oc).我想生成另一个具有oc/co结果的列表对象.
> length(co)
[1] 1064
> length(oc)
[1] 1064
> tail(co[[1]])
[,1]
2011-12-22 0.3018297
2011-12-23 0.2987450
2011-12-27 0.2699710
2011-12-28 0.2706428
2011-12-29 0.2098897
2011-12-30 0.2089051
> tail(oc[[1]])
[,1]
2011-12-22 0.6426411
2011-12-23 0.6462834
2011-12-27 0.6466680
2011-12-28 0.6741420
2011-12-29 0.6781371
2011-12-30 0.6650130
> co / oc
Error in co/oc : non-numeric argument to binary operator
Run Code Online (Sandbox Code Playgroud)
如果我指定列表的索引,则操作成功如下:
> tail(co[[1]] / oc[[1]])
[,1]
2011-12-22 0.4696707
2011-12-23 0.4622507
2011-12-27 0.4174800
2011-12-28 0.4014627
2011-12-29 0.3095093
2011-12-30 0.3141369
Run Code Online (Sandbox Code Playgroud)
我想这样做而不编写循环来迭代两个列表的每个组件(总共1064个组件).
任何帮助将不胜感激.谢谢.
我的任务是定义一个过程is_palindrome,它接受一个字符串作为输入,并返回一个布尔值,指示输入字符串是否是回文.在这种情况下,单个字母应该返回True,就像空字符串一样''.
不幸的是,我没有得到预期的结果.我很感激帮助.
我的代码版本1:
def is_palindrome(s):
if s == '':
return True
else:
if (ord(s[0]) - ord(s[len(s)-1])) == 0:
is_palindrome(s[1:len(s)-1])
else:
return False
print is_palindrome('')
#>>> True (expected = True)
print is_palindrome('abab')
#>>> False (expected = False)
print is_palindrome('abba')
#>>> None (expected = True)
print is_palindrome('andrea')
#>>> None (expected = False)
print is_palindrome('abaaba')
#>>> None (expected = True)
Run Code Online (Sandbox Code Playgroud)
我通过调试器跟踪我的代码,似乎逻辑是正确的,因为代码采用了适当的路径.但是,如上所述,某些案例的最终结果似乎会转为"无".
如果我将代码更改为以下内容:
我的代码版本2:
def is_palindrome(s):
if s == '':
result = True
else:
if (ord(s[0]) - ord(s[len(s)-1])) == 0:
is_palindrome(s[1:len(s)-1])
else: …Run Code Online (Sandbox Code Playgroud) 我需要创建一个对象来计算和存储过去两年中每年每个月的网格中14个节点的3组电价(峰值,非峰值和日平均值).我认为嵌入式列表数据结构是合适的(如果这不是最优的,请纠正我).
在任何情况下,我都不喜欢使用for循环来创建这个结构.如果有一种优雅的方式来做到这一点,我将不胜感激,如果有人可以帮助引导我朝着正确的方向前进.我正在努力练习和改进我的编码.谢谢.
hb_lz_names <- c("HB_BUSAVG", "HB_HOUSTON", "HB_HUBAVG", "HB_NORTH", "HB_SOUTH",
"HB_WEST", "LZ_AEN", "LZ_CPS", "LZ_HOUSTON", "LZ_LCRA", "LZ_NORTH",
"LZ_RAYBN", "LZ_SOUTH", "LZ_WEST")
power_price <- list()
for (i in 1:2){
power_price[[i]] <- list()
for (j in 1:12){
power_price[[i]][[j]] <- list()
for (k in 1:NROW(hb_lz_names)) {
power_price[[i]][[j]][[k]] <- list()
for (l in 1:3){
power_price[[i]][[j]][[k]][[l]] <- l
}
names(power_price[[i]][[j]][[k]]) <- c("on-peak", "off-peak", "average")
}
names(power_price[[i]][[j]]) <- hb_lz_names
}
names(power_price[[i]]) <- c("jan", "feb", "mar", "apr", "may", "jun", "jul", "aug",
"sep", "oct", "nov", "dec")
}
names(power_price) <- c("2011", "2012")
Run Code Online (Sandbox Code Playgroud) 在下面的数据框有一个2级多指标,即city和date:
temp
count
city date
SFO 2014-05-31 31
2014-06-30 30
2014-07-31 31
2014-08-31 31
2014-09-30 30
YYZ 2014-05-31 31
2014-06-30 30
2014-07-31 31
2014-08-31 31
2014-09-30 30
Run Code Online (Sandbox Code Playgroud)
我想放弃2014-05-31,并2014-09-30从该日起的水平.
我该怎么做呢?
评论:构建DataFrame -
df = pd.DataFrame(
{('temp', 'count'): {('SFO', Timestamp('2014-05-31 00:00:00')): 31,
('SFO', Timestamp('2014-06-30 00:00:00')): 30,
('SFO', Timestamp('2014-07-31 00:00:00')): 31,
('SFO', Timestamp('2014-08-31 00:00:00')): 31,
('SFO', Timestamp('2014-09-30 00:00:00')): 30,
('YYZ', Timestamp('2014-05-31 00:00:00')): 31,
('YYZ', Timestamp('2014-06-30 00:00:00')): 30,
('YYZ', Timestamp('2014-07-31 00:00:00')): 31,
('YYZ', Timestamp('2014-08-31 00:00:00')): …Run Code Online (Sandbox Code Playgroud) 我在python中使用sqlalchemy包.在现有表上执行自动加载后,我的操作需要一些时间才能执行.当我尝试使用连接时,这会导致以下错误:
sqlalchemy.exc.OperationalError: (OperationalError) (2006, 'MySQL server has gone away')
Run Code Online (Sandbox Code Playgroud)
我有一个简单的实用程序函数执行多次插入:
def insert_data(data_2_insert, table_name):
engine = create_engine('mysql://blah:blah123@localhost/dbname')
# Metadata is a Table catalog.
metadata = MetaData()
table = Table(table_name, metadata, autoload=True, autoload_with=engine)
for c in mytable.c:
print c
column_names = tuple(c.name for c in mytable.c)
final_data = [dict(zip(column_names, x)) for x in data_2_insert]
ins = mytable.insert()
conn = engine.connect()
conn.execute(ins, final_data)
conn.close()
Run Code Online (Sandbox Code Playgroud)
由于'data_2_insert'有677,161行,所以执行时间很长的是以下行.
final_data = [dict(zip(column_names, x)) for x in data_2_insert]
Run Code Online (Sandbox Code Playgroud)
我遇到了这个问题,提到了类似的问题.但是我不确定如何实现接受的答案建议的连接管理,因为robots.jpg在评论中指出了这一点:
SQLAlchemy 0.7的注意事项 - 不推荐使用PoolListener,但可以使用新的事件系统 …
我正在使用EC2实例运行一项大型工作,我估计大约需要24小时才能完成.我得到了同样的问题,这里描述ssh断管ec2
我按照上面帖子中的建议/解决方案,在我的ssh会话shell中,我通过以下命令启动了我的python程序:
nohup python myapplication.py > myprogram.out 2>myprogram.err
Run Code Online (Sandbox Code Playgroud)
一旦我这样做,连接保持完整的时间比我不使用nohup它的时间更长,但它最终失败broken pipe error并且我回到原点.结果' python myapplication.py'终止了.
有关正在发生的事情的任何想法以及我可以采取哪些措施来防止这种情况发生?
我试图通过索引选择设置数据框中的列的值.
myindex = (df['city']==old_name) & (df['dt'] >= startDate) & (df['dt'] < endDate)
new_name = 'Boston2
df['proxyCity'].ix[myindex ] = new_name
Run Code Online (Sandbox Code Playgroud)
在上面,我想在myindex中给定条件Boston2的proxyCity列中分配值
C:\Users\blah\Anaconda3\lib\site-packages\pandas\core\indexing.py:132: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
self._setitem_with_indexer(indexer, value)
Run Code Online (Sandbox Code Playgroud)
在没有引入文档中概述的问题的情况下,做我想做的事情的正确方法是什么.
使用pandas选择以多个等价条件为条件的行的链接中的答案似乎就像我实现它一样.
我不确定这样做的正确方法是什么.
我想创建一个N x N数组numpy,使对角线为零和[x,y] = -[y,x]。
例如:
np.array([[[0,12, 2],
[-12, 0, 3],
[-2, -3, 0]],])
Run Code Online (Sandbox Code Playgroud)
数组内的值可以是任何浮点数。
我有以下数据框:
注意:日期是索引
city morning afternoon evening midnight
date
2014-05-01 YVR 2.32 4.26 -4.87 6.58
2014-05-01 YYZ 24.78 2.90 -50.55 6.64
2014-05-01 DFW 24.78 2.90 -50.55 6.64
2014-05-01 PDX 2.40 4.06 -4.06 6.54
2014-05-01 SFO 30.35 9.96 64.24 6.66
Run Code Online (Sandbox Code Playgroud)
我试图通过df.to_dict()将这个df保存到一个dict中,但是我只能得到一行:
df.to_dict():
{'city': {Timestamp('2014-05-01 00:00:00'): 'SFO'},
'morning': {Timestamp('2014-05-01 00:00:00'): 9.9600000000000009},
'afternoon': {Timestamp('2014-05-01 00:00:00'): 6.6600000000000001},
'evening': {Timestamp('2014-05-01 00:00:00'): 30.350000000000001},
'midnight': {Timestamp('2014-05-01 00:00:00'): 64.239999999999995}}
Run Code Online (Sandbox Code Playgroud)
难道不应该在dict中输出整个数据帧吗?
python ×5
pandas ×3
indexing ×2
list ×2
r ×2
amazon-ec2 ×1
broken-pipe ×1
dictionary ×1
for-loop ×1
google-maps ×1
intersection ×1
linux ×1
multi-index ×1
mysql ×1
numpy ×1
recursion ×1
sqlalchemy ×1
ssh ×1
string ×1
unix ×1
xts ×1