我有一个查询,可以从表中返回一组syms的数据。
dataFromTab:delete date from select from table where date=2015.01.01,any (sym like) each ("sym1";"sym2";"sym3";"sym4")
dataFromTab:`sym xasc dataFromTab;
@[`dataFromTab;`sym;`p#];
类型var是98h并且按sym排序工作正常但是当使用功能修改添加p#时会给我一个'类型错误。
对于我出错的地方的任何意见都将不胜感激。
谢谢!
答案 0 :(得分:3)
您是在函数内还是从全局命名空间调用所有这些?
如果dataFromTab是局部变量,那么应用import bottleneck
import pandas as pd
import xarray as xr
from sklearn.datasets import load_iris
X_iris = pd.DataFrame(load_iris().data,
index = ["iris_%d" % i for i in range(load_iris().data.shape[0])],
columns = [x.split(" (cm)")[0].replace(" ","_") for x in load_iris().feature_names])
da_iris = xr.DataArray(X_iris, dims=["samples", "attributes"])
def covariance_gufunc(x, y):
return ((x - x.mean(axis=-1, keepdims=True))
* (y - y.mean(axis=-1, keepdims=True))).mean(axis=-1)
def pearson_correlation_gufunc(x, y):
return covariance_gufunc(x, y) / (x.std(axis=-1) * y.std(axis=-1))
def spearman_correlation_gufunc(x, y):
x_ranks = bottleneck.rankdata(x, axis=-1)
y_ranks = bottleneck.rankdata(y, axis=-1)
return pearson_correlation_gufunc(x_ranks, y_ranks)
def spearman_correlation(x, y, dim):
return xr.apply_ufunc(
spearman_correlation_gufunc, x, y,
input_core_dims=[[dim], [dim]],
dask='parallelized',
output_dtypes=[float])
dataFromTab将无效。
p# to the global reference
您需要在本地重新分配dataFromTab才能使其正常工作;
q){data:select from tab;@[`data;`sym;`p#]}[]
'type
[1] {data:select from tab;@[`data;`sym;`p#]}
^
q))\
您还可以使用'set'全局创建表,这将允许您的原始语法工作。但是你可能不想创建不必要的全局变量;
q){data:select from tab;data:@[data;`sym;`p#]}[]
答案 1 :(得分:0)
sym
是字符串列吗?如果我转换为字符串,我会收到错误:
q)trades:update string sym from trades
q)trades:`sym xasc trades
q)@[`trades;`sym;`p#]
'type
[0] @[`trades;`sym;`p#]
^
您可以尝试将其转换为符号,看看是否有效吗?