如何在python中计算矩阵中的偶数和奇数

如何在python中计算矩阵中的偶数和奇数,python,python-3.x,Python,Python 3.x,使用下面的矩阵作为输入,我想计算矩阵中的偶数和奇数 矩阵: 为此,我用python编写了矩阵值,is-two循环是解决这个问题的正确方法 numbers= [[1,4,7,5,8],[8,5,9,11,9]] 下面是一个简单易懂的问题实现。 此代码在python中使用%运算符。链接到解释: 一旦您理解了上面的答案是如何工作的,您就可以尝试使用numpy使代码更干净、更快、更易于阅读 import numpy as np numbers= np.array([[2,5,6],[9,3,8],[1

使用下面的矩阵作为输入,我想计算矩阵中的偶数和奇数 矩阵:

为此,我用python编写了矩阵值,is-two循环是解决这个问题的正确方法

numbers= [[1,4,7,5,8],[8,5,9,11,9]]

下面是一个简单易懂的问题实现。 此代码在python中使用%运算符。链接到解释:


一旦您理解了上面的答案是如何工作的,您就可以尝试使用numpy使代码更干净、更快、更易于阅读

import numpy as np
numbers= np.array([[2,5,6],[9,3,8],[1,4,7]])

odd = numbers[numbers%2 == 1].size
even = numbers[numbers%2 == 0].size

print(odd, even)
正如ShadowRanger所建议的,您应该首先尝试展开嵌套列表,以便更轻松地进行检查:

示例代码片段:

>>> flattened = sum(numbers, [])
>>> flattened
[2, 5, 6, 9, 3, 8, 1, 4, 7]
>>> evens = [x for x in flattened if x%2 == 0]
>>> evens
[2, 6, 8, 4]
>>> odds = [x for x in flattened if x%2]
>>> odds
[5, 9, 3, 1, 7]

请发布预期结果。请阅读。你知道如何迭代列表吗?你知道如何检查一个数字是偶数还是奇数吗?你知道如何保持一个连续的总数吗?如果是这样,就把这些知识结合起来。如果没有,解释一下你觉得哪些比较难。事实上,这个问题太宽泛了,因为你没有指出问题出在哪里;现在您有了一个1D
列表
,使用起来容易多了。如果你不知道该怎么做,你需要和你的老师/导师谈谈,或者完成一个教程。
import numpy as np
numbers= np.array([[2,5,6],[9,3,8],[1,4,7]])

odd = numbers[numbers%2 == 1].size
even = numbers[numbers%2 == 0].size

print(odd, even)
>>> flattened = sum(numbers, [])
>>> flattened
[2, 5, 6, 9, 3, 8, 1, 4, 7]
>>> evens = [x for x in flattened if x%2 == 0]
>>> evens
[2, 6, 8, 4]
>>> odds = [x for x in flattened if x%2]
>>> odds
[5, 9, 3, 1, 7]