小编Sle*_*dge的帖子

如何在编写R .csv文件时控制双引号

我的情况是我正在尝试将包含具有不同数据类型的列的数据帧写入R中的csv文件.我用来编写该文件的代码是:

filename = file("equipment.csv")
write.csv(file = filename, x = equipment, quote = FALSE, row.names = FALSE ) 
Run Code Online (Sandbox Code Playgroud)

当我尝试将csv文件加载到SQL数据库中时,这会导致问题,因为某些列包含包含","的字符串.如果我quote = TRUE在上面的代码中设置,当我加载到数据库时,它会为我的数字数据类型带来问题.

我的问题:有没有办法控制R在编写csv文件时为列添加引号的方式?我希望能够在字符串周围添加引号,但不能添加其他数据类型.

非常感谢您的帮助.

csv r

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

理解Keras的正规化

我试图理解为什么Keras中的正则化语法看起来像它那样.

粗略地说,正则化是通过向损失函数添加与模型权重的某些函数成比例的惩罚项来减少过度拟合的方法.因此,我希望正则化将被定义为模型损失函数规范的一部分.

然而,在Keras中,正则化是基于每层定义的.例如,考虑这种正规化的DNN模型:

input = Input(name='the_input', shape=(None, input_shape))
x = Dense(units = 250, activation='tanh', name='dense_1', kernel_regularizer=l2, bias_regularizer=l2, activity_regularizer=l2)(x)
x = Dense(units = 28, name='dense_2',kernel_regularizer=l2, bias_regularizer=l2, activity_regularizer=l2)(x)
y_pred = Activation('softmax', name='softmax')(x)
mymodel= Model(inputs=input, outputs=y_pred)
mymodel.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics = ['accuracy'])
Run Code Online (Sandbox Code Playgroud)

我本来期望Dense层中的正则化参数不需要,我可以写下最后一行更像:

mymodel.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics = ['accuracy'], regularization='l2')
Run Code Online (Sandbox Code Playgroud)

这显然是错误的语法,但我希望有人可以为我详细说明为什么这种方式定义正则化以及当我使用层级正则化时实际发生了什么.

我不明白的另一件事是在什么情况下我会使用三种正规化选项中的每一种或全部:(kernel_regularizer, activity_regularizer, bias_regularizer)

python keras

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

在 D3 中加载分隔符分隔的值

我正在尝试使用通用 d3.dsvFormat() 函数在 D3 中加载管道分隔值文件。虽然我没有收到错误,但没有任何反应,我认为这是因为回调函数没有执行。

我确实检查了这里的文档,但没有发现它有帮助:https://github.com/d3/d3-dsv/blob/master/README.md#dsvFormat

我的语法有问题吗?

var psv = d3.dsvFormat("|");
psv.parse("my_file.txt", function(error, data) {
    Do a bunch of stuff with the data....
    console.log(data);  //nothing happens here
});
Run Code Online (Sandbox Code Playgroud)

file d3.js

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

SQLAlchemy - 从表定义中删除列

假设我想动态设置主键。我使用虚拟键初始化表,因为 SQLAlchemy 似乎需要这样做。我编写了一个函数,用于根据主索引指定主键,该索引的行为在所有意图和目的上都类似于主键。当我尝试取消虚拟钥匙时,我的问题出现了。

我希望能够在表声明后删除我的虚拟密钥,以便我可以用我的自定义密钥替换它。然而,我不能仅仅delattr(my_table,'dummy_key')因为还会有其他对虚拟密钥的引用,例如在其他地方my_table.__table__.columns,甚至可能在其他地方。

我的问题是,有没有一种好方法可以从表中删除列定义,同时也删除所有这些其他引用?

目前我像这样定义表:

Base = declarative_base(cls=DeferredReflection)

class my_table(Base, TableExtension):
    __tablename__ = "my_table"
    __table_args__ = {'schema': 'my_schema'}
    dummy_key = Column(String(), primary_key=True) #false key, just a placeholder, sqlalchemy requires this
Run Code Online (Sandbox Code Playgroud)

TableExtension添加一个方法:

def set_primary_key(self, column_name, column_type):
    self[column_name] = Column(column_type, primary_key=True)
Run Code Online (Sandbox Code Playgroud)

需要帮助编写此函数:

def remove_column(table, col_name):
    # what should I do here?
Run Code Online (Sandbox Code Playgroud)

我已经有一个获取新密钥的函数并且它可以工作:

column_names, column_types = get_primary_index(table)
Run Code Online (Sandbox Code Playgroud)

我通过继承向表添加了一个方法来分配新键。

table.set_new_keys(column_names, column_types)
Run Code Online (Sandbox Code Playgroud)

然后以通常的方式反映表格:

Base.prepare(engine)
Run Code Online (Sandbox Code Playgroud)

这里最重要的?是如何删除列引用而不对表的其余属性进行太多操作。任何意见,将不胜感激。

python sqlalchemy

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

在 Polars Python API 中将两列组合成元组

我有一个极坐标数据框\xc2\xa0,看起来像:

\n
df = pl.DataFrame({"bid": [1, 2, 3], "fid": [4, 5, 6]})\n
Run Code Online (Sandbox Code Playgroud)\n

我想将两列按行组合成一个元组,以便结果如下所示:

\n
pl.DataFrame({"bfid": [(1, 4), (2, 5), (3, 6)]})\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试这样做:df2.with_columns(pl.map([\'bid\', \'fid\'], lambda x: (x[0], x[1])))这是错误的,但如果我尝试扩展到大型数据集,速度也会很慢。

\n

有没有更好的方法来进行这种类型的数据操作?最终结果应该是:

\n

在此输入图像描述

\n

python data-manipulation python-polars

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

如何更改seaborn中的标签刻度颜色

我有一个 seaborn 情节,我想为其创建自定义刻度标签着色。

代码是:

short_cols = ['col_1', 'col_2', 'col_3', 'col_4', 'col_5', 'col_6', 'col_7', 'col_8', 'col_9', 'col_10', 'col_11', 'col_12', 'col_13', 'col_14', 'col_15', 'col_16', 'col_17', 'col_18', 'col_19']

fig, ax = plt.subplots(figsize=(13,10)) 
sns.heatmap(jr_matrix, 
            center=0, 
            cmap="vlag", 
            linewidths=.75, 
            ax=ax,
            norm=LogNorm(vmin=jr_matrix.min(), vmax=jr_matrix.max()))
ax.set_xticklabels(short_cols, rotation=90, size=14, labelcolor='red')
ax.set_yticklabels(short_cols, rotation=0, size=14)
Run Code Online (Sandbox Code Playgroud)

情节如下:

在此输入图像描述

Short_cols 中的某些项目之间存在一定的分组,因此将它们设置为相同的颜色会很有用。

我的问题是,如何调整刻度标签颜色,以便可以在图中反映这种关联。

例如,假设这些组是:

group1 = ['col_1', 'col_2', 'col_3']
group2 = ['col_4', 'col_5']
group3 = ['col_6']
...
group7=['col_18', 'col_19']
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

python seaborn

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

在seaborn热图中重新标记轴刻度

我有一个由值矩阵构建的 seaborn 热图。矩阵的每个元素对应一个实体,我想为矩阵中的每一行/列制作刻度标签。

我尝试使用该ax.set_xticklabel()函数来完成此操作,但似乎什么也没做。这是我的代码:

type(jr_matrix)
>>> numpy.ndarray

jr_matrix.shape
>>> (15, 15)

short_cols = ['label1','label2',...,'label15'] # list of strings with len 15

fig, ax = plt.subplots(figsize=(13,10)) 
ax.set_xticklabels(tuple(short_cols)) # i also tried passing a list
ax.set_yticklabels(tuple(short_cols))
sns.heatmap(jr_matrix, 
            center=0, 
            cmap="vlag", 
            linewidths=.75, 
            ax=ax,
            norm=LogNorm(vmin=jr_matrix.min(), vmax=jr_matrix.max()))
Run Code Online (Sandbox Code Playgroud)

仍然有矩阵索引作为标签:

在此处输入图片说明

关于如何正确更改这些标签的任何想法将不胜感激。

编辑:如果重要的话,我正在使用 jupyter notebooks 来做这件事。

python seaborn jupyter

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