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是的,继续