小编Rob*_*bin的帖子

在函数结束之前在python中退出函数(没有返回值)的最佳方法是什么(例如检查失败)?

让我们假设一个迭代,我们在其中调用一个没有返回值的函数.我认为我的程序应该表现的方式在这个伪代码中解释:

for element in some_list:
    foo(element)

def foo(element):
    do something
    if check is true:
        do more (because check was succesful)
    else:
        return None
    do much much more...
Run Code Online (Sandbox Code Playgroud)

如果我在python中实现它,它困扰我,该函数返回一个None.有没有更好的方法来"退出函数,没有返回值,如果函数体中的检查失败"?

python return function

136
推荐指数
4
解决办法
27万
查看次数

分析Python中的时间序列 - pandas格式错误 - statsmodels

我试图分析星星的数据.我有明星的时间序列,我想预测他们属于哪个班级(4种不同类型).我有那些明星的时间序列,我想通过去季节化,频率分析和其他可能相关的研究来分析这些时间序列.

对象time_series是一个熊猫DataFrame,包括10列:time_points_b,light_points_b(b代表蓝色)等等......

我首先要研究蓝灯时间序列.

import statsmodels.api as sm;
import pandas as pd
import matplotlib.pyplot as plt
pd.options.display.mpl_style = 'default'
%matplotlib inline

def star_key(slab_id, star_id_b):
    return str(slab_id) + '_' + str(star_id_b)

raw_time_series = pd.read_csv("data/public/train_varlength_features.csv.gz", index_col=0, compression='gzip')
time_series = raw_time_series.applymap(csv_array_to_float)


time_points = np.array(time_series.loc[star_key(patch_id, star_id_b)]['time_points_b'])
light_points = np.array(time_series.loc[star_key(patch_id, star_id_b)]['light_points_b'])
error_points = np.array(time_series.loc[star_key(patch_id, star_id_b)]['error_points_b'])

light_data = pd.DataFrame({'time':time_points[:], 'light':light_points[:]})
residuals = sm.tsa.seasonal_decompose(light_data);

light_plt = residuals.plot()
light_plt.set_size_inches(10, 5)
light_plt.tight_layout()
Run Code Online (Sandbox Code Playgroud)

当我应用seasonal_decompose方法时,此代码给出了属性错误:AttributeError:'Int64Index'对象没有属性'inferred_freq'

python numpy pandas statsmodels

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


时间序列分析 - 不均匀间隔的测量 - 熊猫+ statsmodels

我有两个numpy数组light_points和time_points,并希望对这些数据使用一些时间序列分析方法.

然后我尝试了这个:

import statsmodels.api as sm
import pandas as pd
tdf = pd.DataFrame({'time':time_points[:]})
rdf =  pd.DataFrame({'light':light_points[:]})
rdf.index = pd.DatetimeIndex(freq='w',start=0,periods=len(rdf.light))
#rdf.index = pd.DatetimeIndex(tdf['time'])
Run Code Online (Sandbox Code Playgroud)

这有效,但没有做正确的事情.实际上,测量不是均匀的时间间隔,如果我只是将time_points pandas DataFrame声明为我的帧的索引,我会收到一个错误:

rdf.index = pd.DatetimeIndex(tdf['time'])

decomp = sm.tsa.seasonal_decompose(rdf)

elif freq is None:
raise ValueError("You must specify a freq or x must be a pandas object with a timeseries index")

ValueError: You must specify a freq or x must be a pandas object with a timeseries index
Run Code Online (Sandbox Code Playgroud)

我不知道如何纠正这个问题.此外,似乎大熊猫TimeSeries已被弃用.

我试过这个:

rdf = pd.Series({'light':light_points[:]})
rdf.index = pd.DatetimeIndex(tdf['time'])
Run Code Online (Sandbox Code Playgroud)

但它给我一个长度不匹配: …

python machine-learning time-series pandas statsmodels

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

OSMDroid - 地图不显示

我正在尝试在我的应用程序上加载开放的街道地图。

我的代码如下:

import android.app.Activity;
import android.os.Bundle;

import org.osmdroid.config.Configuration;
import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
import org.osmdroid.views.MapView;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapController;


public class OsmActivity extends Activity {
private MapView         mMapView;
private MapController   mMapController;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_osm);


    Configuration.getInstance().setUserAgentValue(getPackageName());

    mMapView = (MapView) findViewById(R.id.map);
    mMapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE);
    mMapView.setBuiltInZoomControls(true);
    mMapController = (MapController) mMapView.getController();
    mMapController.setZoom(13);
    GeoPoint gPt = new GeoPoint(51500000, -150000);
    mMapController.setCenter(gPt);
}
}
Run Code Online (Sandbox Code Playgroud)

我正在使用 osmdroid 5.6.5(通过 Maven)。

我根据 osmdroid 文档定义了我的用户代理。

Configuration.getInstance().setUserAgentValue(getPackageName());
Run Code Online (Sandbox Code Playgroud)

我有这些 API 设置:

android {
compileSdkVersion 26
defaultConfig {
    applicationId "com.loco_zero.locolizetestsosm"
    minSdkVersion 21
    targetSdkVersion 26 …
Run Code Online (Sandbox Code Playgroud)

java storage android openstreetmap osmdroid

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

自定义池化层 - minmax pooling - Keras - Tensorflow

我想定义我的自定义池化层,而不是像 MaxPooling 层那样返回最大值,它会输出 k 个最大值和 k 个最小值。

我使用 Tensorflow 作为后端。我需要对输出向量进行排序。

我正在考虑这样做:

from keras.layers.pooling import _Pooling1D

class MinMaxPooling1D(_Pooling1D):

    def __init__(self, output_dim, **kwargs):
        self.output_dim = output_dim
        super(MinMaxPooling1D, self).__init__(**kwargs)

    def _pooling_function(self, inputs, **kwargs):
        sorted_ = tf.contrib.framework.sort(inputs, axis = -1)
        print(sorted_)
        return np.concatenate((sorted_[:,:,:self.output_dim/2], sorted_[:,:,-self.output_dim/2:]))
Run Code Online (Sandbox Code Playgroud)

但后来我得到:

Tensor("min_max_pooling1d_1/sort/Neg_1:0", shape=(?, 1, 1, ?), dtype=float32)
ValueError: zero-dimensional arrays cannot be concatenated
Run Code Online (Sandbox Code Playgroud)

MinMaxPooling1D 层应用于 (None, 1, 10) 形状输出。

我当时正在考虑在 MinMaxPooling1D 之前添加一个 Flatten 层,但随后有一个维度问题:

ValueError: Input 0 is incompatible with layer min_max_pooling1d_5: expected ndim=3, found ndim=2
Run Code Online (Sandbox Code Playgroud)

keras tensorflow keras-layer max-pooling

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

如何更新创建为"来自datebase的Code First"的EF模型?

如何更新创建为"来自datebase的Code First"的EF模型?

我没有.edmx文件(只有一个.cs).如何更新它而不删除它并创建一个新的?

entity-framework

0
推荐指数
1
解决办法
2521
查看次数

使用Application类通过应用程序共享对象

我试图使用应用程序类定义全局对象.因此,我定义了以下类.

public class MyApplication extends Application {

    private MyObject myObject=new MyObject();

    public MyObject getMyObject(){
        return this.myObject;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,我在一个活动中使用它,但是我收到一个错误(无法解析方法getApplication()):

public class AnActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_mood);

    Button buttonMusic=(Button) findViewById(R.id.button5);
    buttonMusic.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            MyApplication myApplication = ((MyApplication)this.getApplication());
            Toast.makeText(MoodActivity.this, "playing music", Toast.LENGTH_SHORT).show();
        }
    });

    }
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我会收到此错误,因为例如在另一个活动中调用getApplication()时它会起作用.

我对Android和Java很陌生,所以请原谅这个问题的独创性.

UPDATE

然后我做了MyObject myObject=myApplication.getMyObject();,我没有得到任何编译问题,但应用程序在我进入该活动后立即死亡.

据我所知,不建议使用Application类进行此类使用,那么什么是一个好的替代方案呢?

java mobile android global android-activity

0
推荐指数
1
解决办法
81
查看次数

在 sync.Map 中检测到数据竞争条件 - Golang

我使用-racego 工具参数运行测试,输出

--- FAIL: TestRaceCondition (0.00s)
    testing.go:853: race detected during execution of test
Run Code Online (Sandbox Code Playgroud)
func TestRaceCondition(t *testing.T) {
    var map sync.Map
    for i := 0; i < 10; i++ {
        go func() {
            map.Store(strconv.Itoa(i), nil)
        }()
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白,因为根据文档

Map [...] 对于多个 goroutine 并发使用是安全的,无需额外的锁定或协调。

dictionary go race-condition

-2
推荐指数
1
解决办法
234
查看次数