我是一名有用的助手,可以为您翻译文本。
我有一个很大的numpy数组(通常为500,000x1024的级别,但可能更大),我正在尝试执行一些依赖于数组中正值位置的过程。 一个非常小的示例数组可能是:
首先,需要替换每行中相距不超过三列的正数之间的任何零。因此,如果我用50替换这些数字,我的示例输出将是:
我需要做的第二件事是根据正值范围为每行编写一些信息。例如,使用我的修改后的数组,我需要能够为第三行编写一个声明col[1:7]中有正整数的语句,并为第四行声明col[1:3]和col[6]中有正整数的两个语句。
我已经成功地利用了numpy向量化方法来完成第一个任务,但最终仍然不得不循环遍历列和行(尽管只是在整个数组的子集上)。否则,我会替换给定行中的所有零,而不仅仅是正值之间的零。
但是,似乎没有办法在不使用循环遍历整个数组的情况下完成第二个任务。
我猜我的总体问题是,是否有一种方法可以利用numpy中的矢量化方法来定义每行不同且依赖于下一列值的列索引范围?任何帮助将不胜感激。
我有一个很大的numpy数组(通常为500,000x1024的级别,但可能更大),我正在尝试执行一些依赖于数组中正值位置的过程。 一个非常小的示例数组可能是:
[[ 0., 0., 0., 0., 0.,-1.,-1., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 1., 1., 0., 0., 1., 5., 0., 0.],
[ 0., 1., 1., 0., 0., 0., 1., 0., 0.],
[ 0., 3., 1., 0., 0., 2., 1., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 1., 0., 0., 0., 1., 1., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.]]
首先,需要替换每行中相距不超过三列的正数之间的任何零。因此,如果我用50替换这些数字,我的示例输出将是:
[[ 0., 0., 0., 0., 0.,-1.,-1., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 1., 1.,50.,50., 1., 5., 0., 0.],
[ 0., 1., 1., 0., 0., 0., 1., 0., 0.],
[ 0., 3., 1.,50.,50., 2., 1., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 1., 0., 0., 0., 1., 1., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.]]
我需要做的第二件事是根据正值范围为每行编写一些信息。例如,使用我的修改后的数组,我需要能够为第三行编写一个声明col[1:7]中有正整数的语句,并为第四行声明col[1:3]和col[6]中有正整数的两个语句。
我已经成功地利用了numpy向量化方法来完成第一个任务,但最终仍然不得不循环遍历列和行(尽管只是在整个数组的子集上)。否则,我会替换给定行中的所有零,而不仅仅是正值之间的零。
但是,似乎没有办法在不使用循环遍历整个数组的情况下完成第二个任务。
for col in arr:
for row in arr:
我猜我的总体问题是,是否有一种方法可以利用numpy中的矢量化方法来定义每行不同且依赖于下一列值的列索引范围?任何帮助将不胜感激。