小编Exo*_*odd的帖子

Python Numpy中的Array和__rmul__运算符

在一个项目中,我创建了一个类,我需要在这个新类和一个真实矩阵之间进行操作,所以我重载了这个__rmul__函数

class foo(object):

    aarg = 0

    def __init__(self):
        self.aarg = 1


    def __rmul__(self,A):
        print(A)
        return 0

    def __mul__(self,A):
        print(A)
        return 0
Run Code Online (Sandbox Code Playgroud)

但是当我打电话给它时,结果并不是我的预期

A = [[i*j for i in np.arange(2)  ] for j in np.arange(3)]
A = np.array(A)
R = foo()
C =  A * R
Run Code Online (Sandbox Code Playgroud)

输出:

0
0
0
1
0
2
Run Code Online (Sandbox Code Playgroud)

似乎该函数被调用了6次,每个元素一次.

相反,该__mul__功能非常有效

C = R * A
Run Code Online (Sandbox Code Playgroud)

输出:

[[0 0]
 [0 1]
 [0 2]]
Run Code Online (Sandbox Code Playgroud)

如果A不是数组,而只是列表列表,则两者都可以正常工作

A = [[i*j for i in np.arange(2) …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

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

在int变量中查找'1'的奇偶校验

给定一个int变量,我想检查其二进制表示中的"1"数是偶数还是奇数.它可以用xor操作来制作

int n; 
int s = 0;
for(;n;n>>=1)
    s ^= (n&1);
Run Code Online (Sandbox Code Playgroud)

在C++中有一些更好的方法吗?

注意:我不是要求'1的数量,而是为了它的奇偶性,所以我认为可能有比我更好的代码.

c++ binary int

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

标签 统计

arrays ×1

binary ×1

c++ ×1

int ×1

numpy ×1

python ×1