Python 做",;及;矩阵中第一列和第二列的操作

Python 做",;及;矩阵中第一列和第二列的操作,python,arrays,python-3.x,Python,Arrays,Python 3.x,我的阵列是: [[1. 1. 0. 0. 1.] [0. 1. 0. 1. 0.] [0. 1. 1. 0. 0.] [1. 1. 0. 1. 0.] [1. 0. 1. 0. 0.] [0. 1. 1. 0. 0.] [1. 0. 1. 0. 0.] [1. 1. 1. 0. 1.] [1. 1. 1. 0. 0.] [6. 7. 6. 2. 2.]] 最后一行是列的总和。 我想对矩阵中的零列和第一列执行“AND”运算。 我使用的程序语言是Python3.5 我取零列和第一

我的阵列是:

[[1. 1. 0. 0. 1.]
 [0. 1. 0. 1. 0.]
 [0. 1. 1. 0. 0.]
 [1. 1. 0. 1. 0.]
 [1. 0. 1. 0. 0.]
 [0. 1. 1. 0. 0.]
 [1. 0. 1. 0. 0.]
 [1. 1. 1. 0. 1.]
 [1. 1. 1. 0. 0.]
 [6. 7. 6. 2. 2.]]
最后一行是列的总和。 我想对矩阵中的零列和第一列执行“AND”运算。 我使用的程序语言是Python3.5


我取零列和第一列

[[1. 1.] 1
 [0. 1.] 0
 [0. 1.] 0
 [1. 1.] 1
 [1. 0.] 0
 [0. 1.] 0
 [1. 0.] 0
 [1. 1.] 1
 [1. 1.] 1
 [6. 7.]]
计算结果并将其保存在列表中


我该怎么办?

我不确定我是否理解这个问题,但可能是这样的:

arr = [[1., 1.], [0., 1.], [0., 1.], [1., 1.], [1., 0.], [0., 1.], [1., 0.], [1., 1.], [1., 1.], [6., 7.]]
for a in arr:
    if (a[0] and a[1]):
        print(1)
    else:
        print(0)

我不确定我是否理解这个问题,但可能是这样的:

arr = [[1., 1.], [0., 1.], [0., 1.], [1., 1.], [1., 0.], [0., 1.], [1., 0.], [1., 1.], [1., 1.], [6., 7.]]
for a in arr:
    if (a[0] and a[1]):
        print(1)
    else:
        print(0)
试试这个:

for s in list:
    s.append(int(s[0]) & int(s[1]))

这段代码所做的就是遍历列表,从子列表中的位置0和位置1获取元素,将它们转换为整数(看起来它们以前是双精度的),按位和它们并将结果附加到子列表中。最后,当您得到总和时,您可以使用与列结果相同的操作。

尝试以下操作:

for s in list:
    s.append(int(s[0]) & int(s[1]))


这段代码所做的就是遍历列表,从子列表中的位置0和位置1获取元素,将它们转换为整数(看起来它们以前是双精度的),按位和它们并将结果附加到子列表中。最后,当您获得总和时,您可以使用与列结果相同的操作。

如果arr有类型列表,您可以尝试:

arr = [[1., 1.], [0., 1.], [0., 1.], [1., 1.], [1., 0.], [0., 1.], [1., 0.], [1., 1.], [1., 1.], [6., 7.]]

result = [int(row[0] and row[1]) for row in arr[:-1]]
print(result)
输出

[1, 0, 0, 1, 0, 0, 0, 1, 1]

如果arr有类型列表,您可以尝试:

arr = [[1., 1.], [0., 1.], [0., 1.], [1., 1.], [1., 0.], [0., 1.], [1., 0.], [1., 1.], [1., 1.], [6., 7.]]

result = [int(row[0] and row[1]) for row in arr[:-1]]
print(result)
输出

[1, 0, 0, 1, 0, 0, 0, 1, 1]

我猜你在用numpy。然后,您可以简单地获取数组的切片,并将函数应用于该切片,该切片将在一个大and操作中连接所有元素。您必须配置函数以使用特定参数
沿所需轴执行操作


代码

from __future__ import print_function

import numpy as np

a = np.array([[1., 1., 0., 0., 1.],
              [0., 1., 0., 1., 0.],
              [0., 1., 1., 0., 0.],
              [1., 1., 0., 1., 0.],
              [1., 0., 1., 0., 0.],
              [0., 1., 1., 0., 0.],
              [1., 0., 1., 0., 0.],
              [1., 1., 1., 0., 1.],
              [1., 1., 1., 0., 0.],
              [6., 7., 6., 2., 2.]])

slice_a = a[0:-1, 0:2]                # Do the slicing, "0:-1" zeroth row to the second last row,
                                      #                 "0:2"  zeroth to the first column
and_slice = np.all(slice_a, axis=1)   # Perform the boolean operation

print( slice_a  ) 
print( and_a )

输出

array([[1., 1.],
       [0., 1.],
       [0., 1.],
       [1., 1.],
       [1., 0.],
       [0., 1.],
       [1., 0.],
       [1., 1.],
       [1., 1.]])
array([ True, False, False,  True, False, False, False,  True,  True])

奖金

如果希望输出为列向量,请添加参数
keepdims=True

and_slice = np.all(slice_a, axis=1, keepdims=True)

我猜你在用numpy。然后,您可以简单地获取数组的切片,并将函数应用于该切片,该切片将在一个大and操作中连接所有元素。您必须配置函数以使用特定参数
沿所需轴执行操作


代码

from __future__ import print_function

import numpy as np

a = np.array([[1., 1., 0., 0., 1.],
              [0., 1., 0., 1., 0.],
              [0., 1., 1., 0., 0.],
              [1., 1., 0., 1., 0.],
              [1., 0., 1., 0., 0.],
              [0., 1., 1., 0., 0.],
              [1., 0., 1., 0., 0.],
              [1., 1., 1., 0., 1.],
              [1., 1., 1., 0., 0.],
              [6., 7., 6., 2., 2.]])

slice_a = a[0:-1, 0:2]                # Do the slicing, "0:-1" zeroth row to the second last row,
                                      #                 "0:2"  zeroth to the first column
and_slice = np.all(slice_a, axis=1)   # Perform the boolean operation

print( slice_a  ) 
print( and_a )

输出

array([[1., 1.],
       [0., 1.],
       [0., 1.],
       [1., 1.],
       [1., 0.],
       [0., 1.],
       [1., 0.],
       [1., 1.],
       [1., 1.]])
array([ True, False, False,  True, False, False, False,  True,  True])

奖金

如果希望输出为列向量,请添加参数
keepdims=True

and_slice = np.all(slice_a, axis=1, keepdims=True)


你所说的“和”操作到底是什么意思?对于示例数据,结果会是什么样的?我取零列和第二列。然后用它们做什么?我编辑我的问题。你使用numpy吗?你所说的“and”操作到底是什么意思?对于示例数据,结果会是什么样子?我取零列和第二列。然后用它们做什么?我编辑我的问题。是否使用numpy?是的。但是如果[0]a[1]不等于0或1返回空值,则[6,7.]不需要添加条件。对不起,我不理解命令。@user10008500如下:如果((a[0]==0或a[0]==1)和(a[1]==0或a[1]==1))@user10008500是的,继续。但是如果[0]a[1]不等于0或1返回空值,则[6,7.]不需要添加条件。对不起,我不理解shand@user10008500如下所示:如果((a[0]==0或a[0]==1)和(a[1]==0或a[1]==1))@user10008500是的,继续