小编pat*_*987的帖子

将numpy解决方案转换为dask(numpy索引在dask中不起作用)

我正在尝试将我的蒙特卡罗模拟转换numpydask,因为有时数组太大,无法适应内存.因此,我在云中设置了一组计算机:我的dask集群由24个内核和94 GB内存组成.我为这个问题准备了我的代码的简化版本.

我的原始numpy代码如下所示:

def numpy_way(sim_count, sim_days, hist_days):
   historical_data = np.random.normal(111.51, 10, hist_days)
   historical_multidim = np.empty(shape=(1, 1, sim_count, hist_days))
   historical_multidim[:, :, :, :] = historical_data


   random_days_panel = np.random.randint(low=1,
                                      high=hist_days,
                                      size=(1, 1, sim_count, sim_days))
   future_panel = historical_multidim[np.arange(1)[:, np.newaxis, np.newaxis, np.newaxis],
                                      np.arange(1)[:, np.newaxis, np.newaxis],
                                      np.arange(sim_count)[:, np.newaxis],
                                      random_days_panel]
   return future_panel.shape
Run Code Online (Sandbox Code Playgroud)

注意:我只是在这里返回numpy数组的形状(但是因为它是numpy,所以future_panel的元素在内存中是有意义的.

关于功能的一些话:

  • 我正在创建一个随机数组historical_data- 这只是1D
  • 然后将该数组"广播"为4D数组(historical_multidim).这里不使用前两个维度(但它们在我的最终应用程序中)
    • 第三维表示完成了多少次模拟
    • 第四维度是forecasted未来的天数
  • random_days_panel- 只是一个ndarray随机选择的日子.所以shape这个数组的最后一个是:1,1,sim_count,sim_days(在上一点解释)
  • future_panelndarray随机选取的值historical_multidim.即从具有预期形状的历史数据生成的数组(1,1,sim_count,sim_days)

现在,问题是,其中一些步骤没有在dask中实现:

  • historical_multidim[:, …

python numpy dask dask-distributed

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

SQL Server查询多对多关系

我的SQL服务器中有以下多对多关系(见下图).

多对多的关系

在大多数情况下,表tblWavelengths中有2行与表tblSensors相关,(在某些情况下只有1行,在极端情况下可能有20行)

我做了以下简单查询来从这3个表中检索数据:

select W.DateTimeID,S.SensorName,S.SensorType,W.Channel,W.PeakNr,W.Wavelength
from tblWavelengths as W
    Left Join tblSensorWavelengths as SW on W.tblWavelengthID = SW.WavelengthID
    Left Join tblSensors as S on SW.SensorID = S.SensorID
order by W.DateTimeID
Run Code Online (Sandbox Code Playgroud)

运行此查询后,我得到以下结果:

结果

这是我的问题.我想写一个查询,它只过滤那些在给定时刻(DateTimeID)在tblWavelengths表中有两行(两个不同波长)的传感器(SensorName).因此,例如,我希望得到没有77902/001传感器的结果 - 因为它在给定的时刻只有一行(一个波长)与tblSensors相关

sql sql-server many-to-many

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

SQL Server查询多对多关系 - 如何查询?

这是对我之前问题的更新:多对多的关系

以前的解决方案工作正常,但现在我想要tgo一点点改善结果.我希望将所有波长值放在一行中.

因此,而不是以下结果:

DateTimeID  Wavelength  SensorID
11435   1581,665    334
11435   1515,166    334
11435   1518,286    335
Run Code Online (Sandbox Code Playgroud)

我想要有类似的东西:

DateTimeID  Wavelength1 Wavelength2  SensorID
11435   1581,665    1515,166     334
11435   1518,286                 335
Run Code Online (Sandbox Code Playgroud)

sql pivot many-to-many sql-server-2008

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