繁体   English   中英

将 2d arrays 插入一个 3d 阵列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM