GVKun编程网logo

python numpy.where()如何工作?(python numpy where)

8

本文将分享pythonnumpy.where的详细内容,并且还将对如何工作?进行详尽解释,此外,我们还将为大家带来关于Class.forName()如何工作?、df.combine()如何工作?、no

本文将分享python numpy.where的详细内容,并且还将对如何工作?进行详尽解释,此外,我们还将为大家带来关于Class.forName()如何工作?、df.combine()如何工作?、node.js中的require()如何工作?、NumPy Sum(带轴)如何工作?的相关知识,希望对你有所帮助。

本文目录一览:

python numpy.where()如何工作?(python numpy where)

python numpy.where()如何工作?(python numpy where)

我正在玩耍numpy并浏览文档,并且遇到了一些魔术。即我正在谈论numpy.where()

>>> x = np.arange(9.).reshape(3, 3)>>> np.where( x > 5 )(array([2, 2, 2]), array([0, 1, 2]))

它们如何在内部实现您能够将类似的东西传递x > 5给方法的功能?我想这与它有关,__gt__但是我正在寻找详细的解释。

答案1

小编典典

他们如何在内部实现将x> 5之类的内容传递给方法的能力?

简短的答案是他们没有。

对numpy数组进行任何形式的逻辑运算都会返回一个布尔数组。(即__gt__,,__lt__等等都返回给定条件为true的布尔数组)。

例如

x = np.arange(9).reshape(3,3)print x > 5

产量:

array([[False, False, False],       [False, False, False],       [ True,  True,  True]], dtype=bool)

这就是为什么类似的东西if x > 5:如果x是一个numpy数组会引发ValueError的原因。它是True /
False值的数组,而不是单个值。

此外,numpy数组可以由布尔数组索引。例如,在这种情况下,x[x>5]yields [6 7 8]

老实说,您实际需要的很少,numpy.where但它只返回布尔数组为的索引True。通常,您可以使用简单的布尔索引执行所需的操作。

Class.forName()如何工作?

Class.forName()如何工作?

我刚刚了解到java.sql package。它用于Class.forName()动态加载扩展的驱动程序DriverManager。然后我们得到使用DriverManager.getConnection()方法的连接。

那么整个事情如何运作?
DriverManager类如何知道如何在不使用实际驱动程序的类名的情况下获取连接。

我们也可以将Class.forName()用于自定义应用程序…如果通过示例进行解释,我将非常高兴。

df.combine()如何工作?

df.combine()如何工作?

来自docs

中的示例
take_smaller = lambda s1,s2: s1 if s1.sum() < s2.sum() else s2

这表示如果df1中的序列之和小于df2中的序列之和,则从df1返回序列,否则从df2返回。

因此,当您这样做时:

df1.combine(df2,take_smaller)

   A    B
0  0  3.0
1  0  0.0

这很好。

但是,当您执行fill_value=-5时,第一个数据帧中的第二个序列的总和会变小,因为fill_value首先填充了NaN然后进行比较。 (-5 + 4)-5 and 4。

fill_value标量值,默认为无 在将任何列传递到合并函数之前用NaN填充的值。

,

我想您是指doc example

take_smaller = lambda s1,s2: s1 if s1.sum() < s2.sum() else s2

如果是

这里您使用的是fill_value=-5,因此传递给函数的列B将是 [-5,4][3,0]
因此-5 + 4 = -1小于3 + 0 = 3,因此[-5,4]返回。

node.js中的require()如何工作?

node.js中的require()如何工作?

我尝试了这个:

// mod.js
var a = 1;
this.b = 2;
exports.c = 3;

// test.js
var mod = require('./mod.js');
console.log(mod.a);    // undefined
console.log(mod.b);    // 2
console.log(mod.c);    // 3,so this === exports?

所以我想象require()可能是这样实现的:

var require = function (file) {
    var exports = {};
    var run = function (file) {
        // include "file" here and run
    };
    run.apply(exports,[file]);
    return exports;
}

那正确吗?请帮助我了解require()或在哪里可以找到源代码。谢谢!

NumPy Sum(带轴)如何工作?

NumPy Sum(带轴)如何工作?

我已经学会了如何根据自己NumPy的好奇心来工作。

似乎最简单的功能最难翻译为代码(我理解代码)。对每种情况的每个轴进行硬编码很容易,但是我想找到一种动态算法,可以在任何轴上以n维求和。官方网站上的文档没有帮助(仅显示结果而不显示过程),并且很难浏览Python/ C代码。

注意: 我确实弄清楚了当对一个数组求和时,指定的轴是“已删除”,即,形状为(4,3,2)且轴为1的数组的总和会得出形状为的数组的答案(4,2)

关于python numpy.where如何工作?的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Class.forName()如何工作?、df.combine()如何工作?、node.js中的require()如何工作?、NumPy Sum(带轴)如何工作?等相关内容,可以在本站寻找。

本文标签: