이 코드의 목적은 사전 목록을 가져와 특정 사전을 가져온 다음이 사전의 값을 사용하여 목록을 작성하는 것입니다 목록을 수십 개의 배열로 변환하고 이전 코드 섹션에서 빌드 한 3399 개의 사전 (len (X))에 대해이 작업을 수행 할 수 있습니다. 내가 마지막 부분ValueError : 입력 배열을 shape (83)에서 브로드 캐스트 할 수 없습니다. (84)
input_array = np.zeros([len(X),84])
for i in range(0,len(X)):
input_array[i,:] = np.array(list(inputs_dict[i].values()))
코드 줄을 실행에 도착 때까지이 과정의 모든 단계는 순조롭게, 다음과 같은 오류가 나타납니다 :
ValueError: could not broadcast input array from shape (83) into shape (84)
글쎄,이 솔루션은 매우 분명 보인다, 권리? 초기화 된 배열의 크기를 변경하면 모든 것이 수정 될 것입니다. 다음과 같이 치수를 변경하면 매우 이상한 결과가 나옵니다. 내가 뭘하거나 시도해도 우회 할 수없는 것 같습니다. 초기화 된 배열의 차원을 변경
input_array = np.zeros([len(X),83])
for i in range(0,len(X)):
input_array[i,:] = np.array(list(inputs_dict[i].values()))
ValueError: could not broadcast input array from shape (84) into shape (83)
어떻게 든 큰 2 차원 배열 구조에 투입 될 필요가 내 이미 미리 만들어진 배열의 크기를 변경합니다.
은 정말 /이 문제에 대한 해결책이있을 것입니다 경우그것은 엄청난 도움이 될 것입니다 ..., 스태킹, 재편을 포함하여 내가 찾을 수있는 가능한 모든 기능을 사용하여이 문제를 우회 추가, 합치 시도 사전 목록에서 값을 가져 와서 숫자가 적은 배열에 넣는 더 쉬운 방법입니다.
전체 코드 :
X = pd.read_csv('PromoterTrain.csv', index_col=0).values.tolist()
y = pd.read_csv('SigmaTrain.csv', index_col=0).values.tolist()
def reverse_complement(dna):
complement = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A'}
return ''.join([complement[base] for base in dna[::-1]])
X = [''.join(x) for x in X]
X_comp = [reverse_complement(X[i]) for i in range(0,len(X))]
kmer_1 = ['A','T','G','C']
kmer_2 = ['AA', 'AT', 'AG', 'AC', 'TA', 'TT', 'TG', 'TC', 'GA', 'GT', 'GG',
'GC', 'CA', 'CT', 'CG', 'CC']
kmer_3 = ['AAA', 'AAT', 'AAG', 'AAC', 'ATA', 'ATT', 'ATG', 'ATC', 'AGA',
'AGT', 'AGG', 'AGC', 'ACA', 'ACT', 'ACG', 'ACC', 'TAA', 'TAT', 'TAG', 'TAC',
'TTA', 'TTT', 'TTG', 'TTC', 'TGA', 'TGT', 'TGG', 'TGC', 'TCA', 'TCT', 'TCG',
'TCC', 'GAA', 'GAT', 'GAG', 'GAC', 'GTA', 'GTT', 'GTG', 'GTC', 'GGA', 'GGT',
'GGG', 'GGC', 'GCA', 'GCT', 'GCG', 'GCC', 'CAA', 'CAT', 'CAG', 'CAC', 'CTA',
'CTT', 'CTG', 'CTC', 'CGA', 'CGT', 'CGG', 'CGC', 'CCA', 'CCT', 'CCG', 'CCC']
inputs_default = {'A':0,'T':0,'G':0,'C':0}
for i in range(0,len(kmer_2)-1):
inputs_default[kmer_2[i]] = 0
for i in range(0,len(kmer_3)-1):
inputs_default[kmer_3[i]] = 0
def count_kmers(seq, K):
return Counter(seq[start:start+K] for start in range(len(seq) - K))
inputs_dict = []
combined_1mers = {}
combined_2mers = {}
combined_3mers = {}
combined_1mers_revcomp = {}
combined_2mers_revcomp = {}
combined_3mers_revcomp = {}
for i in range(0,len(X)-1):
combined_1mers = count_kmers(X[i],1)
combined_2mers = count_kmers(X[i],2)
combined_3mers = count_kmers(X[i],3)
combined_1mers_revcomp = count_kmers(X_comp[i],1)
combined_2mers_revcomp = count_kmers(X_comp[i],2)
combined_3mers_revcomp = count_kmers(X_comp[i],3)
combined_kmers_forward =
{**combined_1mers,**combined_2mers,**combined_3mers}
combined_kmers_revcomp =
{**combined_1mers_revcomp,**combined_2mers_revcomp,**combined_3mers_revcomp}
combined_kmers = dict((n, combined_kmers_forward.get(n,
0)+combined_kmers_revcomp.get(n, 0)) for n in
set(combined_kmers_forward)|set(combined_kmers_revcomp))
inputs_dict.append(dict((n, inputs_default.get
input_array = np.zeros([len(X),84])
for i in range(0,len(X)):
input_array[i,:] = np.array(list(inputs_dict[i].values()))
inputs_dict의 출력 NN NP 수입 팬더 등 수입 NumPy와 소장 PD 토치 수입 autograd에서 카운터 오기 토치 을 가져올로는 [0 : 2] 준다 :
[{'A': 28,
'AA': 10,
'AAA': 3,
'AAC': 3,
'AAG': 3,
'AAT': 1,
'AC': 6,
'ACA': 2,
'ACC': 0,
'ACG': 2,
'ACT': 2,
'AG': 4,
'AGA': 1,
'AGC': 0,
'AGG': 1,
'AGT': 2,
'AT': 8,
'ATA': 0,
'ATC': 4,
'ATG': 3,
'ATT': 1,
'C': 22,
'CA': 9,
'CAA': 3,
'CAC': 2,
'CAG': 1,
'CAT': 3,
'CC': 2,
'CCA': 1,
'CCG': 0,
'CCT': 1,
'CG': 6,
'CGA': 1,
'CGC': 3,
'CGG': 0,
'CGT': 2,
'CT': 4,
'CTA': 0,
'CTC': 0,
'CTG': 1,
'CTT': 3,
'G': 21,
'GA': 7,
'GAA': 3,
'GAC': 0,
'GAG': 0,
'GAT': 4,
'GC': 6,
'GCA': 1,
'GCC': 1,
'GCG': 3,
'GCT': 0,
'GG': 2,
'GGA': 1,
'GGC': 1,
'GGG': 0,
'GGT': 0,
'GT': 6,
'GTA': 1,
'GTC': 0,
'GTG': 2,
'GTT': 3,
'T': 29,
'TA': 2,
'TAA': 1,
'TAC': 1,
'TAG': 0,
'TAT': 0,
'TC': 7,
'TCA': 4,
'TCC': 1,
'TCG': 1,
'TCT': 1,
'TG': 9,
'TGA': 4,
'TGC': 2,
'TGG': 1,
'TGT': 2,
'TT': 10,
'TTA': 1,
'TTC': 3,
'TTG': 2,
'TTT': 3},
{'A': 26,
'AA': 8,
'AAA': 3,
'AAC': 1,
'AAG': 1,
'AAT': 3,
'AC': 4,
'ACA': 2,
'ACC': 1,
'ACG': 0,
'ACT': 1,
'AG': 6,
'AGA': 3,
'AGC': 2,
'AGG': 0,
'AGT': 1,
'AT': 8,
'ATA': 1,
'ATC': 2,
'ATG': 2,
'ATT': 3,
'C': 24,
'CA': 7,
'CAA': 1,
'CAC': 2,
'CAG': 2,
'CAT': 2,
'CC': 4,
'CCA': 1,
'CCG': 2,
'CCT': 0,
'CG': 6,
'CGA': 1,
'CGC': 3,
'CGG': 1,
'CGT': 0,
'CT': 6,
'CTA': 0,
'CTC': 3,
'CTG': 2,
'CTT': 1,
'G': 23,
'GA': 7,
'GAA': 2,
'GAC': 0,
'GAG': 3,
'GAT': 2,
'GC': 8,
'GCA': 2,
'GCC': 1,
'GCG': 3,
'GCT': 2,
'GG': 3,
'GGA': 1,
'GGC': 1,
'GGG': 0,
'GGT': 1,
'GT': 4,
'GTA': 1,
'GTC': 0,
'GTG': 2,
'GTT': 1,
'T': 27,
'TA': 4,
'TAA': 2,
'TAC': 1,
'TAG': 0,
'TAT': 1,
'TC': 7,
'TCA': 2,
'TCC': 1,
'TCG': 1,
'TCT': 3,
'TG': 8,
'TGA': 2,
'TGC': 2,
'TGG': 2,
'TGT': 2,
'TT': 8,
'TTA': 2,
'TTC': 2,
'TTG': 1,
'TTT': 3}]
'inputs_dict'에 무엇이 있습니까? 그 대상의 샘플을 줄 수 있습니까? – alvas
[mcve] please ... – Julien
내 생각에 하나의 dicts 요소에는 84 개의 용어가 있고 다른 요소에는 83이 있습니다. 소스를 이해했는지 확인하십시오. – hpaulj