小编Mat*_*ias的帖子

CoordinatorLayout重叠

看看下面的布局.你会看到浮动按钮距离底部太远.这是因为显示了工具栏和选项卡,并且ViewPager的高度错误.所以我在某种程度上对layout_height做错了.但是我该如何解决这个问题呢?

备注:ViewPager是主要内容,它包含第二个选项卡中带有ListView和Google Map V2的片段.

浮动按钮太低

这是布局XML:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:layout_scrollFlags="scroll|enterAlways" />

        <android.support.design.widget.TabLayout
            android:id="@+id/sliding_tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
            android:id="@+id/pager_list_views"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            android:layout_width="match_parent"
            android:layout_height="fill_parent">
    </android.support.v4.view.ViewPager>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

这是第一个选项卡(列表)中片段的布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <ListView
              android:id="@+id/preview_list"
              app:layout_behavior="@string/appbar_scrolling_view_behavior"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:choiceMode="singleChoice"
              android:orientation="vertical" />

    <android.support.design.widget.FloatingActionButton
            android:id="@+id/action_add"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="end|bottom"
            android:layout_margin="16dp"
            android:src="@mipmap/ic_add_white_48dp" />

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

只想确认一下; 这对FAB来说不是问题.看到这张照片.这是一个类似的布局.带有ToolBar和ViewPager的CoordinatorLayout,可以浏览所有细节条目(因此不需要选项卡).而且,内部视图似乎太长(与ToolBar的高度相同).

在此输入图像描述

android android-fragments android-coordinatorlayout

9
推荐指数
1
解决办法
3949
查看次数

OpenCV减慢了WebCam捕获速度

我在我的Windows机器和RaspberryPi(ARM,Debian Wheezy)上使用C++应用程序中的OpenCV从Webcam捕获帧.问题是CPU使用率.我只需要每隔2秒处理一次帧 - 所以没有实时的实时视图.但是如何实现呢?你会建议哪一个?

  1. 抓住每一帧,但只处理一些:这有点帮助.我获得了最新的帧,但此选项对CPU使用率没有显着影响(低于25%)
  2. 抓取/处理每个帧但是睡眠:对CPU使用率有很好的影响,但是我得到的帧很旧(5-10秒)
  3. 在每个周期中创建/销毁VideoCapture:在一些周期之后,应用程序崩溃 - 即使正确清理了VideoCapture.
  4. 还有其他想法吗?

提前致谢

#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
#include <vector>
#include <unistd.h>
#include <stdio.h>

using namespace std;

int main(int argc, char *argv[])
{
    cv::VideoCapture cap(0); //0=default, -1=any camera, 1..99=your camera

    if(!cap.isOpened()) 
    {
        cout << "No camera detected" << endl;
        return 0;
    }

    // set resolution & frame rate (FPS)
    cap.set(CV_CAP_PROP_FRAME_WIDTH, 320);
    cap.set(CV_CAP_PROP_FRAME_HEIGHT,240);
    cap.set(CV_CAP_PROP_FPS, 5);

    int i = 0;
    cv::Mat frame;

    for(;;)
    {
        if (!cap.grab()) …
Run Code Online (Sandbox Code Playgroud)

c++ webcam opencv video-capture raspberry-pi

8
推荐指数
1
解决办法
3187
查看次数

PySpark:TypeError:'Column'对象不可调用

我正在从HDFS加载数据,我希望通过特定变量进行过滤.但不知何故,Column.isin命令不起作用.它抛出此错误:

TypeError:'Column'对象不可调用

from pyspark.sql.functions import udf, col
variables = ('852-PI-769', '812-HC-037', '852-PC-571-OUT')
df = sqlContext.read.option("mergeSchema", "true").parquet("parameters.parquet")
same_var = col("Variable").isin(variables)
df2 = df.filter(same_var)
Run Code Online (Sandbox Code Playgroud)

架构如下所示:

df.printSchema()
root
 |-- Time: timestamp (nullable = true)
 |-- Value: float (nullable = true)
 |-- Variable: string (nullable = true)
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?PS:这是使用Jupyter笔记本的Spark 1.4.

python apache-spark pyspark spark-dataframe

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

文本的概述作为单行传染媒介道路的

对于应用程序,我需要将文本/字形绘制为基于矢量的路径.使用GDI + GraphicsPath和Graphics.DrawPath或WPF FormattedText和Geometry工作正常,我得到输出,如第一张图片所示.但是在某种程度上可以将字母作为单行路径,如第二张图所示(显示L).

如果有人有想法,我很高兴.

文字大纲 单行字形路径

看这个例子.使用内置函数将始终为您提供包含其内部和外部边界的字母的路径.只有第一个由单个笔划构成,这导致更短的路径.

在此输入图像描述

c# text gdi+ glyph

7
推荐指数
1
解决办法
5277
查看次数

Pandas Dataframe:根据地理坐标(经度和纬度)连接范围内的项目

我有一个包含纬度和经度的地方的数据框.想象一下,例如城市.

df = pd.DataFrame([{'city':"Berlin", 'lat':52.5243700, 'lng':13.4105300},
                   {'city':"Potsdam", 'lat':52.3988600, 'lng':13.0656600},
                   {'city':"Hamburg", 'lat':53.5753200, 'lng':10.0153400}]);
Run Code Online (Sandbox Code Playgroud)

现在我试图让所有城市都在另一个城市的半径范围内.假设距离柏林500公里,距汉堡500公里等所有城市.我会通过复制原始数据帧并使用距离函数连接来完成此操作.

中间结果有点像这样:

Berlin --> Potsdam
Berlin --> Hamburg
Potsdam --> Berlin
Potsdam --> Hamburg
Hamburg --> Potsdam
Hamburg --> Berlin
Run Code Online (Sandbox Code Playgroud)

分组(减少)后的最终结果应该是这样的.备注:如果值列表包含城市的所有列,那将会很酷.

Berlin --> [Potsdam, Hamburg]
Potsdam --> [Berlin, Hamburg]
Hamburg --> [Berlin, Potsdam]
Run Code Online (Sandbox Code Playgroud)

或者只是一个城市周围500公里的城市数量.

Berlin --> 2
Potsdam --> 2
Hamburg --> 2
Run Code Online (Sandbox Code Playgroud)

由于我对Python很陌生,所以我会很感激任何起点.我很熟悉长距离.但不确定Scipy或Pandas中是否有有用的距离/空间方法.

很高兴,如果你能给我一个起点.到目前为止,我尝试过这篇文章.

更新:这个问题背后的原始想法来自两西格玛连接租赁列表Kaggle比赛.我们的想法是让那些在另一个列表中上市100米.其中a)表示密度,因此表示热门区域; b)如果比较地址,您可以查看是否存在交叉,因此是否存在噪声区域.因此,您不需要完整的项目与项目关系,因为您不仅需要比较距离,还需要比较地址和其他元数据.PS:我没有向Kaggle上传解决方案.我只是想学习.

python latitude-longitude haversine pandas

7
推荐指数
1
解决办法
1941
查看次数

熊猫to_datetime失去了时区

我的原始数据有一个时间戳为ISO8601格式的列,如下所示:

'2017-07-25T06:00:02 + 02:00'

由于数据是CSV格式,因此它将被读作对象/字符串.因此我将它转换为这样的日期时间.

import pandas pd
df['time'] = pd.to_datetime(df['time'], utc=False)

#df['time'][0]
df['time'][0].isoformat()
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会导致UTC时间戳,并且时区会丢失.例如df ['time'] [0] .tzinfo未设置.

时间戳('2017-07-25 04:00:02')

'2017-07-25T04:00:02'

我正在寻找一种方法来保留每个时区对象的时区信息.但之后没有将其重新设置为CEST(中欧夏令时),因为此信息已包含在原始数据中的ISO8601时区偏移中.知道怎么做吗?

python datetime pandas

7
推荐指数
1
解决办法
2223
查看次数

Pandas DataFrame:SettingWithCopyWarning:尝试在DataFrame的切片副本上设置值

我知道有很多关于这个警告的帖子,但我无法找到解决方案.这是我的代码:

df.loc[:, 'my_col'] = df.loc[:, 'my_col'].astype(int)
#df.loc[:, 'my_col'] = df.loc[:, 'my_col'].astype(int).copy()
#df.loc[:, 'my_col'] = df['my_col'].astype(int)
Run Code Online (Sandbox Code Playgroud)

它产生警告:

SettingWithCopyWarning:尝试在DataFrame的切片副本上设置值.尝试使用.loc [row_indexer,col_indexer] = value

即使我按照建议更改了代码,我仍然会收到此警告?我需要做的就是转换一列的数据类型.

**备注:**最初该列的类型为float,具有一位小数(例如:4711.0).因此我将其更改为整数(4711)然后更改为字符串('4711') - 只是为了删除小数.

感谢您的帮助!

更新:该警告对过滤之前完成的原始数据的过滤产生了副作用.我错过了DataFrame.copy().使用副本代替,解决了问题!

df = df[df['my_col'].notnull()].copy()
df.loc[:, 'my_col'] = df['my_col'].astype(int).astype(str)
#df['my_col'] = df['my_col'].astype(int).astype(str) # works too!
Run Code Online (Sandbox Code Playgroud)

python pandas

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

PySpark:检索数据框内组的平均值和均值周围的值

我的原始数据以表格格式显示.它包含来自不同变量的观察.每次观察时都有变量名,时间戳和当时的值.

变量[string],Time [datetime],Value [float]

数据作为Parquet存储在HDFS中并加载到Spark Dataframe(df)中.从该数据帧.

现在我想为每个变量计算默认统计数据,如均值,标准差等.之后,一旦检索到Mean,我想过滤/计算那些紧邻Mean的变量值.

因此,我需要先得到每个变量的均值.这就是我使用GroupBy获取每个变量(不是整个数据集)的统计信息的原因.

df_stats = df.groupBy(df.Variable).agg( \
    count(df.Variable).alias("count"), \
    mean(df.Value).alias("mean"), \
    stddev(df.Value).alias("std_deviation"))
Run Code Online (Sandbox Code Playgroud)

通过每个变量的均值,我可以过滤那些围绕均值的特定变量的值(只是计数).因此,我需要该变量的所有观察值(值).这些值位于原始数据帧df中,而不是聚合/分组数据帧df_stats中.

创建统计数据

最后,我想要一个像聚合/分组df_stats这样的数据帧,并使用新列"count_around_mean".

我在考虑使用df_stats.map(...)或df_stats.join(df,df.Variable).但我被困在红色箭头上:(

问题:你怎么会意识到这一点?

临时解决方案:同时我正在使用基于您的想法的解决方案.但是stddev范围2和3的范围函数不起作用.它总是产生一个

AttributeError表示NullType没有_jvm

from pyspark.sql.window import Window
from pyspark.sql.functions import *
from pyspark.sql.types import *

w1 = Window().partitionBy("Variable")
w2 = Window.partitionBy("Variable").orderBy("Time")

def stddev_pop_w(col, w):
    #Built-in stddev doesn't support windowing
    return sqrt(avg(col * col).over(w) - pow(avg(col).over(w), 2))

def isInRange(value, mean, stddev, radius):
    try:
        if (abs(value - mean) < radius * stddev): …
Run Code Online (Sandbox Code Playgroud)

python sql window-functions apache-spark apache-spark-sql

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

PySpark:如何重新采样频率

想象一下Spark数据帧由变量的值观察组成.每个观察都有一个特定的时间戳,不同变量之间的时间戳不一样.这是因为当变量的值发生变化并被记录时,会生成时间戳.

#Variable     Time                Value
#852-YF-007   2016-05-10 00:00:00 0
#852-YF-007   2016-05-09 23:59:00 0
#852-YF-007   2016-05-09 23:58:00 0
Run Code Online (Sandbox Code Playgroud)

问题我想使用前向填充将所有变量放入相同的频率(例如10分钟).为了形象化,我从Book"Python for Data Analysis"中复制了一个页面.问题:如何以有效的方式在Spark Dataframe上执行此操作?

Python for Data Analysis

time-series apache-spark apache-spark-sql pyspark

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

Python Pandas:获取列不为空的 DataFrame 的行

我正在过滤我的 DataFrame 删除那些特定列的单元格值为 None 的行。

df = df[df['my_col'].isnull() == False]
Run Code Online (Sandbox Code Playgroud)

工作正常,但 PyCharm 告诉我:

PEP8:与 False 的比较应该是 'if cond is False:' 或 'if not cond:'

但我想知道我应该如何将它应用到我的用例中?使用“not ...”或“is False”不起作用。我目前的解决方案是:

df = df[df['my_col'].notnull()]
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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