Python Rust Numpy库-按行迭代:无法生成返回行而不是单个值的NPYSingleterBuilder::readwrite

Python Rust Numpy库-按行迭代:无法生成返回行而不是单个值的NPYSingleterBuilder::readwrite,python,numpy,rust,iterator,pyo3,Python,Numpy,Rust,Iterator,Pyo3,我试图在Numpy数组上按行进行迭代。数组是通过PyO3访问的,我认为库可以访问底层的C对象,但是我似乎找不到更复杂的SingleIteratorBuilder的参考,它可以帮助我通过行访问数组 这是文档页面: (我看这个项目还处于起步阶段) 这是我的rust代码,它被编译成python模块 #[宏使用] 外部板条箱标准; 外部板条箱; 使用pyo3::前奏::*; 使用pyo3::wrap_py函数; 使用numpy::*; #[pyfunction] fn数组\u print(\u py:P

我试图在Numpy数组上按行进行迭代。数组是通过PyO3访问的,我认为库可以访问底层的C对象,但是我似乎找不到更复杂的SingleIteratorBuilder的参考,它可以帮助我通过行访问数组

这是文档页面: (我看这个项目还处于起步阶段)

这是我的rust代码,它被编译成python模块

#[宏使用]
外部板条箱标准;
外部板条箱;
使用pyo3::前奏::*;
使用pyo3::wrap_py函数;
使用numpy::*;
#[pyfunction]
fn数组\u print(\u py:Python,m:&PyModule)->PyResult{
m、 添加_函数(wrap_pyfunction!(数组_print,m)?)?;
好(())
}
本例的python代码

#矩阵是已编译模块的名称
将矩阵作为am导入
arr1=np.数组([[1,2,3],[4,5,6],[1,2,3],[4,5,6]],ndmin=2)
am.阵列_打印(arr1)
这就是我刚才说的

~project>python use_algorithm.py
1
2
3
4
5
6
1
2
3
4
5
6

当然,我尝试使用ndarray并将整个pyArray复制到一个新对象中,但这是最糟糕的情况,因为我的矩阵在行和列上都应该很大。复制数据可能是更糟糕的选择。

如果数组是连续的,您可以访问
.as\u slice()
。将矩阵视为一个简单的切片,您可以使用
.chunks(n)
对行进行迭代

这只适用于对行进行迭代。对于列,您可能需要
itertools

#[宏使用]
外部板条箱标准;
外部板条箱;
使用numpy::*;
使用pyo3::前奏::*;
使用pyo3::wrap_py函数;
#[pyfunction]
fn数组\u print(\u py:Python,m:&PyModule)->PyResult{
m、 添加_函数(wrap_pyfunction!(数组_print,m)?)?;
好(())
}

一个小更正:是否要迭代行?它不是按行进行迭代。是的,我想按行进行迭代。我在哪里换车?在标题中?我已经测试过了,它可以正常工作了