You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于将H/T(抛硬币结果)转换为0/1二进制数组的技术咨询

Convert H/T Coin Flip Data to 0/1 Binary Array in NumPy

Got it, let's get this sorted! You’ve loaded your sample data with Data = np.load('sample_1.npy') and need to turn those 'H'/'T' values into a 0/1 binary array. Here are a few efficient, straightforward methods using NumPy that should work depending on your data structure:

Method 1: Boolean Indexing (Most Efficient)

This is the fastest approach for large datasets since it uses NumPy's vectorized operations under the hood:

# Initialize a zero array with the same shape as your data, integer type
binary_data = np.zeros_like(Data, dtype=int)
# Set all 'H' positions to 1 (swap 'H' with 'T' if you want T=1 instead)
binary_data[Data == 'H'] = 1

If you need to handle unexpected values (like something that’s not 'H' or 'T'), you can add a check to mark those as a placeholder (e.g., -1):

binary_data = np.zeros_like(Data, dtype=int)
binary_data[Data == 'H'] = 1
binary_data[Data == 'T'] = 0
# Mark non-H/T values as -1
binary_data[~np.isin(Data, ['H', 'T'])] = -1

Method 2: One-Liner with np.where

For a concise, readable solution, use np.where to map values in one line:

# Map 'H' to 1, everything else (including 'T') to 0
binary_data = np.where(Data == 'H', 1, 0)
# Or reverse it: map 'T' to 1, 'H' to 0
binary_data = np.where(Data == 'T', 1, 0)

To handle invalid values here too, nest another np.where:

binary_data = np.where(Data == 'H', 1, np.where(Data == 'T', 0, -1))

Method 3: Vectorized Function (For Simple Use Cases)

If you prefer a more explicit function-based approach, use np.vectorize (note: this is less efficient for large datasets than the above methods, but works fine for smaller samples):

def convert_flip(flip_result):
    if flip_result == 'H':
        return 1
    elif flip_result == 'T':
        return 0
    else:
        return -1  # Handle invalid entries

# Create a vectorized version of the function
vectorized_convert = np.vectorize(convert_flip)
binary_data = vectorized_convert(Data)

Just make sure your Data array is a string dtype (you can check with Data.dtype). If it’s stored as object dtype, the above methods still work—NumPy will handle the string comparisons correctly.

内容的提问来源于stack exchange,提问作者PythonBeginner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 13:23:14