首页 > 解决方案 > Python np.stack 中的所有输入数组必须具有相同的形状

问题描述

我有一个核苷酸序列,我正在尝试将它们转换为一个数组。以下代码适用于具有 999 个序列的文件,并且不适用于比这些序列更小或更大的文件。

示例代码如下

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
integer_encoder = LabelEncoder()  
one_hot_encoder = OneHotEncoder(categories='auto')   
input_features = []

for sequence in sequences:
  integer_encoded = integer_encoder.fit_transform(list(sequence))
  integer_encoded = np.array(integer_encoded).reshape(-1, 1)
  one_hot_encoded = one_hot_encoder.fit_transform(integer_encoded)
  input_features.append(one_hot_encoded.toarray())

np.set_printoptions(threshold=40)
input_features = np.stack(input_features, axis = -1)

ValueError: all input arrays must have the same shape


预期输出为

DNA sequence 1#
AAGCGGGGGT.....GTGGTGTATA
one hot encoding of Sequence #1:

[[1.1.0.....1.0.1]
[0.0.0....0.0]]

标签: pythonarraysnumpy

解决方案


推荐阅读