让我们假设一个迭代,我们在其中调用一个没有返回值的函数.我认为我的程序应该表现的方式在这个伪代码中解释:
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
.有没有更好的方法来"退出函数,没有返回值,如果函数体中的检查失败"?
我试图分析星星的数据.我有明星的时间序列,我想预测他们属于哪个班级(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'
我找到了一些解决方案,但它们太乱了.
algorithm linear-algebra linear-programming convex-optimization convex-polygon
我有两个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)
但它给我一个长度不匹配: …
我正在尝试在我的应用程序上加载开放的街道地图。
我的代码如下:
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) 我想定义我的自定义池化层,而不是像 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) 如何更新创建为"来自datebase的Code First"的EF模型?
我没有.edmx文件(只有一个.cs).如何更新它而不删除它并创建一个新的?
我试图使用应用程序类定义全局对象.因此,我定义了以下类.
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类进行此类使用,那么什么是一个好的替代方案呢?
我使用-race
go 工具参数运行测试,输出
--- 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 并发使用是安全的,无需额外的锁定或协调。
python ×3
android ×2
java ×2
pandas ×2
statsmodels ×2
algorithm ×1
dictionary ×1
function ×1
global ×1
go ×1
keras ×1
keras-layer ×1
max-pooling ×1
mobile ×1
numpy ×1
osmdroid ×1
return ×1
storage ×1
tensorflow ×1
time-series ×1