小编iva*_*nmp的帖子

IN的多个表达式

我有两个相同结构的大(400多万条记录)表,它们有大约300k重复行.我想DELETE使用DELETE IN语法重复行.

我已经使用该MERGE语句完成了它(仅在2008或更新时可用,所以我不能使用它,因为我还在运行2005),而且DELETE EXISTS,但是我在开始DELETE IN工作时遇到了一些麻烦.

我遇到的问题DELETE IN是我的大表有一个复合主键,这意味着我只能使用所有这些列来识别唯一的行.

在T-SQL中是否可以将多个表达式作为IN子句的参数?就像是:

DELETE FROM MyBigTable
WHERE ([Column1], [Column2], [Column3]) IN
    (SELECT [Column1],
            [Column2],
            [Column3]
     FROM MyBigTable
     INTERSECT
     SELECT [Column1],
            [Column2],
            [Column3]
     FROM MyOtherBigTable)
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-2005 sql-delete

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

在OOP中解析S表达式的正确方法

我正在寻找一种方法来实现一个S表达式读取器(稍后将同时使用一个Scheme解释器和一个编译器),但我一直在问自己(如果有的话)我应该为它编写一个AST.

我一直在阅读SICP,这在Scheme中非常简单,但我希望以OO方式在C++中实现解释器和编译器.

请记住,我这样做只是为了学习目的,所以我并不是在寻找最简单或最快捷的方法,而是寻找正确且可重复使用的方法.

我在一些Scheme实现中看到人们解析s表达式并且很容易输出cons单元,如下所示:

  struct Sexpr
  {
  };

  struct Cons : public Sexpr
  {
    Sexpr* left;
    Sexpr* right;
  };

  struct IntAtom : Sexpr
  {
    int value;
  };
Run Code Online (Sandbox Code Playgroud)

每种方案都有一个Sexpr的子类Atom,或者类似的东西.

我不确定,但这对我来说似乎是一个黑客......这项工作不应该由翻译而不是读者完成吗?

我想知道的是,这是否被认为是读取S表达式的最佳(或正确)方式,还是解析器的作用比解析器更重要?解析器是否应该有自己的AST而不是依赖于cons细胞?

c++ oop scheme abstract-syntax-tree s-expression

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

在3d中用Matplotlib绘制线性模型

我正在尝试创建适合数据集的线性模型的3d图.我能够在R中相对容易地做到这一点,但我真的很难在Python中做同样的事情.这是我在R中所做的:

3d图

这是我在Python中所做的:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import statsmodels.formula.api as sm

csv = pd.read_csv('http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv', index_col=0)
model = sm.ols(formula='Sales ~ TV + Radio', data = csv)
fit = model.fit()

fit.summary()

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

ax.scatter(csv['TV'], csv['Radio'], csv['Sales'], c='r', marker='o')

xx, yy = np.meshgrid(csv['TV'], csv['Radio'])

# Not what I expected :(
# ax.plot_surface(xx, yy, fit.fittedvalues)

ax.set_xlabel('TV')
ax.set_ylabel('Radio')
ax.set_zlabel('Sales')

plt.show()
Run Code Online (Sandbox Code Playgroud)

我做错了什么,我该怎么做?

谢谢.

python statistics matplotlib linear-regression

4
推荐指数
2
解决办法
8066
查看次数