[英]insert 2d arrays into one 3d array
我正在尝试将一些二维数组插入 3d 一个.. 代码运行良好,但插入命令有困难。 所有 2d arrays 都是正确的,但是当我插入它们时,3d 数组 int 更新(只有零)
def binarySeqs (seq_list):
"""taking dna sequences and returning a 3d matrix """
lenght=len(seq_list[0])
num_of_seq=len(seq_list)
for i in seq_list:
if lenght!=len(i):
raise ValueError ("Invalid list of sequences")
for i in seq_list:
if set(i).issubset("ACGT")==False :
raise ValueError ("Invalid list of sequences")
basedict={'A':0 , 'T':1 ,'C':2 , 'G':3}
my_array=np.zeros(( num_of_seq, 4, lenght))
#print(my_array.shape)
for l in seq_list:
dmat=seqBinary(l)
#print(dmat)
for i in range((num_of_seq)):
#print(i)
np.insert(my_array ,i , dmat, axis=0 )
return my_array
numpy.insert不是就地操作,它确实返回更改的数组,请考虑以下示例:
import numpy as np
a = np.array([1,2,3])
b = np.insert(a, 1, [5])
print(a) # [1 2 3]
print(b) # [1 5 2 3]
因此,您应该将更改后的数组分配回变量,即代替
np.insert(my_array ,i , dmat, axis=0 )
做
my_array = np.insert(my_array ,i , dmat, axis=0 )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.