Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在numpy数组中,我想将一列复制到另一个矩阵,并从原始矩阵中删除该列_Python_Arrays_Numpy_Matrix_Copy - Fatal编程技术网

Python 在numpy数组中,我想将一列复制到另一个矩阵,并从原始矩阵中删除该列

Python 在numpy数组中,我想将一列复制到另一个矩阵,并从原始矩阵中删除该列,python,arrays,numpy,matrix,copy,Python,Arrays,Numpy,Matrix,Copy,垫矩阵形状可以是10000*5。这里只是一个例子 这里我定义了一个函数。它尝试查找mat[:,0]ba或mat[:,1]

垫矩阵形状可以是10000*5。这里只是一个例子

这里我定义了一个函数。它尝试查找mat[:,0]ba或mat[:,1]ba或mat[:,1]ba不复制,只删除

例如be=0,ba=6,bb=3

退货清单应为:

mat=[[0,1,5],[1,3,6],[-1,4,4],[1,2,2],[7,3,7],[2,5,3]]  
该函数将返回mat、SWAP和SWAP

mat=[[1,3,6],[2,5,3]]
swape=[[-1,4,4]]
swapt=[[1,2,2],[0,1,5]]
那么如何在mat中删除自身? 或者用什么有效的方法来写这段代码


问题更新…

从您的代码中确实不清楚您正在尝试做什么,但让我为您编写一个小示例,它可能会帮助您开始清理代码

for col in mat:
将numpy导入为np
def分离(垫、a、b):
断言a

我希望上面的例子能帮助你开始自己的项目。有一件事可能有点让人困惑,上面代码中的
~
被用作“逻辑not”运算符。它可以以这种方式用于
bool
类型的numpy数组,但要小心,因为它对其他python对象有不同的含义(称为补码运算符).

我还不完全清楚您想用代码实现什么:看起来您正试图在某个数组中附加针对特定条件检查过的列的索引。你能更新你的帖子并添加一个数字例子吗?例如,
mat=np.reforme(np.arange(0,15),(5,3));ba=11;be=5;bb=3
?您不应该真正删除循环中矩阵的行或列。请记住,如果在I=1时删除行1,则行3将变为行2,行2将变为行1。现在,当i=2时,您将看到新的第2行,即旧的第3行。旧的第2行从未在循环中检查过。您的回答非常有用。所以在这里,我可以使用布尔运算。例如mat[:,0]c断言b>c?它似乎给了我错误的通知…您可以完全组合比较操作,例如
(mat[:,0]c)
。确保包含括号。实际上并不需要断言,它只是惰性错误检查。
for col in mat:
import numpy as np

def split(mat, a, b):
    assert a < b
    where_less_than_a = mat[:, 0] < a
    where_less_than_b = mat[:, 0] < b

    less_than_a = mat[where_less_than_a, :]
    between_a_b = mat[(~where_less_than_a) & where_less_than_b, :]
    greater_eq_b = mat[(~where_less_than_b), :]
    return less_than_a, between_a_b, greater_eq_b

mat = np.arange(27).reshape((9, 3))
x, y, z = split(mat, 4., 17.)
print(x)
# [[0 1 2]
#  [3 4 5]]
print(y)
# [[ 6  7  8]
#  [ 9 10 11]
#  [12 13 14]
#  [15 16 17]]
print(z)
# [[18 19 20]
#  [21 22 23]
#  [24 25 26]]