小编Sel*_*lah的帖子

Ruby-从变量获取位范围

我有一个变量,并希望从该变量中获取一定范围的位。我想要最干净的方法来做到这一点。

如果x = 19767和我想要bit3-bit8(从右边开始): 10011010011011119767二进制。我想要括号中的部分,100110(100110)111所以答案是38。

用Ruby实现以下功能的最简单/最简洁/最优雅的方法是什么?

bit_range(orig_num, first_bit, last_bit)
Run Code Online (Sandbox Code Playgroud)

PS。计算强度较低的答案的加分点。

ruby bit-manipulation

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

使用inject来计算数组中的元素

我正在尝试计算数组中元素的出现次数并将其保存在哈希中.我想使用注入功能.我有这个代码:

a = ["the","the","a", "it", "it", "it"]
a.inject(Hash.new(0)) {|hash,word| hash[word] += 1}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会出现以下错误:

TypeError: can't convert String into Integer
    from (irb):47:in `[]'
    from (irb):47:in `block in irb_binding'
    from (irb):47:in `each'
    from (irb):47:in `inject'
Run Code Online (Sandbox Code Playgroud)

另外,我不知道如何解决它.

ruby arrays inject

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

通过pip安装的spyder-kernels模块的ModuleNotFoundError

我正在尝试使用conda来安装spyder-kernels并根据以下说明在远程服务器上实例化内核:https://docs.spyder-ide.org/ipythonconsole.html

当我运行命令时,python -m spyder_kernels.console我收到一个错误:

/home/selah/anaconda3/bin/python: Error while finding module specification for 'spyder-kernels.console' (ModuleNotFoundError: No module named 'spyder-kernels')
Run Code Online (Sandbox Code Playgroud)

但是,我知道今天早些时候这个命令工作正常.

关于发生了什么以及如何解决它的任何想法?

版本信息:

[selah@lothal ~]$ conda --version
conda 4.6.2
[selah@lothal ~]$ conda list | grep spyder-kernels
spyder-kernels            0.3.0                    py36_0  
[selah@lothal ~]$ find -name '*spyder-kernels*'
./anaconda3/pkgs/spyder-kernels-0.3.0-py36_0
./anaconda3/pkgs/spyder-kernels-0.3.0-py36_0.tar.bz2
./anaconda3/conda-meta/spyder-kernels-0.3.0-py36_0.json
Run Code Online (Sandbox Code Playgroud)

python spyder jupyter-kernel

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

布尔当量的pandas to_numeric()

我正在寻找pandas to_numeric()的布尔等价物我希望函数将列转换为True/False/nan,如果可能的话,如果没有抛出错误.

我的动机是我需要在数据集中自动识别和转换大约1000列的布尔列.我可以使用以下代码使用浮点数/整数执行类似的操作:

df = df_raw.apply(pd.to_numeric, errors='ignore')
Run Code Online (Sandbox Code Playgroud)

python etl dataframe pandas petl

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

sklearn 的 PCA.fit_transform 结果与产品 PCA.components_ 和输入数据不匹配

我正在尝试使用 sklearn 的 PCA 功能将我的数据减少到二维。但是,我注意到当我使用 fit_transform() 函数执行此操作时,结果与 elements_ 属性与输入数据相乘的结果不匹配。

为什么这些不匹配?哪个结果是正确的?

def test_pca_fit_transform(self):
    from sklearn.decomposition import PCA
    input_data = np.matrix([[11,4,9,3,2,2], [7,2,8,2,0,2], [3,1,2,5,2,9]])
    #each column of input data is an observation, each row is a dimension

    #method1
    pca = PCA(n_components=2)
    data2d = pca.fit_transform(input_data.T)

    #method2
    component_matrix = np.matrix(pca.components_)
    data2d_mult = (component_matrix * input_data).T

    np.testing.assert_almost_equal(data2d, data2d_mult)
    #FAILS!!!
Run Code Online (Sandbox Code Playgroud)

numpy linear-algebra pca scikit-learn

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