Check for C-style ordering in numpy array is checking only if its not F-style ordering
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- numpy, python
- Área
- api, backend-api-design
Línea de trabajo
Busca en el código de la Python API los usos de numpy.isfortran y sigue las comprobaciones que se aplican antes de que los arrays lleguen a la C API. Reproduce el problema con arrays segmentados, transpuestos o que no sean contiguos por cualquier otro motivo; después, confirma que la comprobación requiere un diseño C-contiguous y añade o actualiza la cobertura de regresión si el código circundante tiene tests.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
We use numpy.isfortran to check if a incoming array is following C-style index ordering. We do this check since the rest of the layers underneath assumes C-style ordering. This check becomes more critical in case of multidimensional arrays since usually those multidimensional arrays in python API method would be handled as 1D array in the C API and this translation fails if not C-style ordering. The numpy.isfortran only ensures that the incoming array is not F-contiguous. However, when it returns false, there is no guarantee that the incoming array is always C-contiguous. If the incoming array has undergone some manipulation(like slicing with steps, transposing, or fancy indexing) before getting passed, then it is possible that the memory layout is not contiguous and isfortran check will miss catching this. We should instead be explicitly checking for C-contiguous layout using numpy.flags.c_contiguous to ensure the layout is as the C API expects it to be.
- Lenguaje dominante
- Python
- Estrellas
- 128
- Forks
- 110
- Merge medio
- 5 d 14 h
- PR fusionados (30 d)
- 10
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ni/nimi-python
-
docs nitclk priority-low
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
ni/nimi-python#1993 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
ni/nimi-python#2164 · 1 comentario ·
-
bug docs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 48/100
ni/nimi-python#2162 ·
-
codegen enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
ni/nimi-python#2148 · 2 comentarios ·
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
ni/nimi-python#2119 ·
Todos los issues de ni/nimi-python
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
-
hcocena Abiertopolicies-accepted pre-review precheck-passed
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Bioconductor/BiocContributions#214 · 5 comentarios ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
TencentCloud/Octop#1169 · 1 comentario ·
-
[开源推荐] 在老板拷问你之前,先让 AI 灵魂拷问你 Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
521xueweihan/HelloGitHub#3778 ·
-
The version checker's trailing attribute region has no control for a less-than inside a quoted value Abiertoarea: dashboard area: tests bug perceived difficulty: 2 python
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Nitjsefnie-Harness-Commons/daedalus#1105 · 1 comentario ·