python_向量化序列说明_将整数序列编码为二进制矩阵

向量化序列说明_将整数序列编码为二进制矩阵
参考:
http://www.pythonheidong.com/blog/article/187614/


import numpy as np
t = np.array([1,2,3,4,5,6,7,8,9])
r = np.zeros((len(t), 10))
t
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
r
array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
for i, s in enumerate(t): r[i,s] = 1.
t
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
r
r
array([[0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 1., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 1., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 0., 1., 0.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 1.]])
def vectorize_sequences(sequences, dimension=10000):
    # Create an all-zero matrix of shape (len(sequences), dimension)
    results = np.zeros((len(sequences), dimension))
    for i, sequence in enumerate(sequences):
       results[i, sequence] = 1.  # set specific indices of results[i] to 1s
    return results
x_train = vectorize_sequences(t)
x_train
def vectorize_sequences(sequences, dimension=10000):
    # Create an all-zero matrix of shape (len(sequences), dimension)
    results = np.zeros((len(sequences), dimension))
    for i, sequence in enumerate(sequences):
       results[i, sequence] = 1.  # set specific indices of results[i] to 1s
    return results
x_train = vectorize_sequences(t)
x_train
array([[0., 1., 0., ..., 0., 0., 0.],
       [0., 0., 1., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       ...,
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.]])
import numpy as np
t = np.array([[1,2,3,4,5,6,7,8,9],[1,2,3,4,5,6,7,8,9]])
r = np.zeros((len(t), 10))
def vectorize_sequences(sequences, dimension=10000):
    # Create an all-zero matrix of shape (len(sequences), dimension)
    results = np.zeros((len(sequences), dimension))
    for i, sequence in enumerate(sequences):
       results[i, sequence] = 1.  # set specific indices of results[i] to 1s
    return results
x_train = vectorize_sequences(t)
x_train
array([[0., 1., 0., ..., 0., 0., 0.],
       [0., 0., 1., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       ...,
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.]])
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python中的随机数生成器模块random能够生成伪随机数序列。要生成一个二进制的随机数序列,可以通过将随机生成的整数转换二进制表示来实现。 首先,我们需要导入random模块: ``` import random ``` 接下来,我们可以使用random.randint函数来生成一个指定范围内的随机整数。例如,要生成一个0到1之间的随机数: ``` random_number = random.randint(0, 1) ``` 然后,我们可以使用bin函数将随机生成的整数转换二进制字符串: ``` binary_number = bin(random_number)[2:] ``` 通过将上述过程封装在一个循环中,我们可以生成一个二进制随机数序列。下面是一个生成长度为n的二进制随机数序列的例子: ``` import random def generate_random_binary_sequence(n): binary_sequence = "" for _ in range(n): random_number = random.randint(0, 1) binary_number = bin(random_number)[2:] binary_sequence += binary_number return binary_sequence ``` 注意,使用随机数生成器生成的数列是伪随机的,并不能完全符合真正的随机性。因此,在需要进行安全敏感的应用中,需要使用更强的随机数生成器模块,如random模块中的os.urandom函数。 ### 回答2: Python中可以使用`random`模块生成二进制的随机数序列。首先,需要引入`random`模块,然后使用`random.getrandbits()`函数来生成随机的二进制序列。 `random.getrandbits()`函数的参数指定了需要生成的随机位数。例如,如果想要生成10位二进制的随机数,可以使用`random.getrandbits(10)`。 在生成二进制随机数序列之前,需要根据任务的需求确定所需的位数。然后,使用循环语句来生成序列,并将每个生成的二进制数存储在一个列表中。 以下是一个示例代码: ```python import random num_of_bits = 10 # 需要生成的二进制随机数位数 sequence_length = 5 # 需要生成的随机数序列长度 binary_sequence = [] # 存储二进制序列的列表 for _ in range(sequence_length): binary_num = bin(random.getrandbits(num_of_bits))[2:] # 生成随机的二进制数,并转换为字符串 binary_sequence.append(binary_num) # 将生成的二进制数加入列表 print(binary_sequence) ``` 运行以上代码,将生成一个包含5个长度为10的二进制随机数的序列,例如:['1100110110', '1010111100', '1001001010', '1110001011', '1001111001']。 以上就是使用Python生成二进制随机数序列的方法。根据具体需求,可以调整位数和序列长度来生成不同的二进制随机数序列。 ### 回答3: Python中可以使用`random`模块配合`bin()`函数生成二进制随机数序列。 首先,需要导入`random`模块。 ```python import random ``` 然后,可以使用`random.randint()`函数生成随机整数,并使用`bin()`函数将其转换二进制。`bin()`函数返回的是一个字符串,需要使用`str()`函数将其转换为字符串类型。 ```python random_num = random.randint(0, 15) # 生成0到15之间的随机整数 bin_num = bin(random_num) # 将随机整数转换二进制字符串 bin_str = str(bin_num) # 将二进制字符串转换为字符串类型 ``` 如果要生成多个二进制随机数,可以使用循环。 ```python binary_sequence = [] # 创建一个空列表用于存储二进制随机数序列 for i in range(10): # 生成10个随机数 random_num = random.randint(0, 15) # 生成0到15之间的随机整数 bin_num = bin(random_num) # 将随机整数转换二进制字符串 bin_str = str(bin_num) # 将二进制字符串转换为字符串类型 binary_sequence.append(bin_str) # 将二进制字符串添加到序列中 ``` 以上代码会生成一个包含10个二进制随机数的序列`binary_sequence`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值