示例#1
0
        def gatherv_str_arr_impl(data):
            rank = sdc.distributed_api.get_rank()
            n_loc = len(data)
            n_all_chars = num_total_chars(data)

            # allocate send lens arrays
            send_arr_lens = np.empty(n_loc, np.uint32)  # XXX offset type is uint32
            send_data_ptr = get_data_ptr(data)

            for i in range(n_loc):
                _str = data[i]
                send_arr_lens[i] = len(_str)

            recv_counts = gather_scalar(np.int32(n_loc))
            recv_counts_char = gather_scalar(np.int32(n_all_chars))
            n_total = recv_counts.sum()
            n_total_char = recv_counts_char.sum()

            # displacements
            all_data = StringArray([''])  # dummy arrays on non-root PEs
            displs = np.empty(0, np.int32)
            displs_char = np.empty(0, np.int32)

            if rank == MPI_ROOT:
                all_data = pre_alloc_string_array(n_total, n_total_char)
                displs = sdc.hiframes.join.calc_disp(recv_counts)
                displs_char = sdc.hiframes.join.calc_disp(recv_counts_char)

            offset_ptr = get_offset_ptr(all_data)
            data_ptr = get_data_ptr(all_data)
            c_gatherv(
                send_arr_lens.ctypes,
                np.int32(n_loc),
                offset_ptr,
                recv_counts.ctypes,
                displs.ctypes,
                int32_typ_enum)
            c_gatherv(
                send_data_ptr,
                np.int32(n_all_chars),
                data_ptr,
                recv_counts_char.ctypes,
                displs_char.ctypes,
                char_typ_enum)
            convert_len_arr_to_offset(offset_ptr, n_total)
            return all_data
示例#2
0
 def test_impl():
     A = StringArray(['ABC', 'BB', 'ADEF'])
     df = pd.DataFrame({'A': A})
     B = df.A.str.contains('BB', regex=False)
     return B.sum()
示例#3
0
 def sdc_func(a):
     _a = StringArray(a) if as_str_arr == True else a  # noqa
     return numpy_like.copy(_a)
示例#4
0
 def test_impl():
     A = StringArray(['ABC', 'BB', 'CDEF'])
     B = A == 'ABC'
     C = A[B]
     return len(C) == 1 and C[0] == 'ABC'
示例#5
0
 def test_impl():
     A = StringArray(['ABC', 'BB', 'CDEF'])
     B = A == 'ABC'
     return B.sum()
示例#6
0
 def test_impl():
     return StringArray(['ABC', 'BB', 'CDEF'])