| 90 | |
| 91 | template <int TYPE> |
| 92 | inline int64_t ValuesToBitmap(PyArrayObject* arr, uint8_t* bitmap) { |
| 93 | typedef internal::npy_traits<TYPE> traits; |
| 94 | typedef typename traits::value_type T; |
| 95 | |
| 96 | int64_t null_count = 0; |
| 97 | |
| 98 | Ndarray1DIndexer<T> values(arr); |
| 99 | for (int i = 0; i < values.size(); ++i) { |
| 100 | if (traits::isnull(values[i])) { |
| 101 | ++null_count; |
| 102 | } else { |
| 103 | bit_util::SetBit(bitmap, i); |
| 104 | } |
| 105 | } |
| 106 | |
| 107 | return null_count; |
| 108 | } |
| 109 | |
| 110 | class NumPyNullsConverter { |
| 111 | public: |