2017-06-01 20 views
6

Tôi muốn in một mảng có nhiều mảng mà không bị cắt bớt. Tôi đã thấy các giải pháp khác nhưng những giải pháp đó dường như không hoạt động.In mảng numpy không có dấu chấm lửng

Dưới đây là đoạn mã:

total_list = np.array(total_list) 
np.set_printoptions(threshold=np.inf) 
print(total_list) 

Và đây là những gì đầu ra trông giống như:

22  A 
23  G 
24  C 
25  T 
26  A 
27  A 
28  A 
29  G 
     .. 
232272 G 
232273 T 
232274 G 
232275 C 
232276 T 
232277 C 
232278 G 
232279 T 

Đây là toàn bộ mã. Tôi có thể mắc sai lầm khi nhập loại.

import csv 
import pandas as pd 
import numpy as np 



seqs = pd.read_csv('BAP_GBS_BTXv2_imp801.hmp.csv') 
plts = pd.read_csv('BAP16_PlotPlan.csv') 

required_rows = np.array([7,11,14,19,22,31,35,47,50,55,58,63,66,72,74,79,82,87,90,93,99]) 
total_list = [] 


for i in range(len(required_rows)): 
    curr_row = required_rows[i]; 
    print(curr_row) 
    for j in range(len(plts.RW)): 
     if(curr_row == plts.RW[j]): 
      curr_plt = plts.PI[j] 
      curr_range = plts.RA1[j] 
      curr_plt = curr_plt.replace("_", "").lower() 
      if curr_plt in seqs.columns: 
       new_item = [curr_row,curr_range,seqs[curr_plt]] 
       total_list.append(new_item) 
       print(seqs[curr_plt]) 


total_list = np.array(total_list) 
''' 
np.savetxt("foo.csv", total_list[:,2], delimiter=',',fmt='%s') 
total_list[:,2].tofile('seqs.csv',sep=',',format='%s') 
''' 
np.set_printoptions(threshold='nan') 

print(total_list) 
+1

Nó làm việc cho tôi, có lẽ total_list của bạn không phải là một mảng NumPy? – Psidom

+1

Nó không phải là cách mảng numpy nhìn. Bạn có chắc chắn nó không phải là một loạt gấu trúc? – ayhan

+0

bạn đang cố gắng in một tệp? – Aaron

Trả lời

5

sử dụng đoạn mã sau để không có dấu ba chấm.

import numpy 
numpy.set_printoptions(threshold=numpy.nan) 

hoặc

numpy.set_printoptions(threshold='nan') 

EDIT:

Nếu bạn có một pandas.DataFrame sử dụng đoạn mã sau vào in mảng của bạn:

def print_full(x): 
    pd.set_option('display.max_rows', len(x)) 
    print(x) 
    pd.reset_option('display.max_rows') 

Hoặc bạn có thể sử dụng pandas.DataFrame.to_string() để có được kết quả mong muốn.

+0

Tôi đã thử điều này. Không hoạt động – Harjatin

+0

phiên bản python và numpy? –

+0

Python 3.5.2, numpy 1.11.1 – Harjatin

3

Bạn có thể khắc phục hành vi repr/in lạ NumPy bằng cách thay đổi nó vào một list:

print list(total_list) 

nên in ra danh sách các mảng np 2 phần tử.

+0

Điều này vẫn cung cấp cho cùng một đầu ra – Harjatin

+1

Weird - nó có xảy ra nếu bạn sử dụng 'total_list.tolist()' không? –

+1

bạn có thể chạy một mã khác nhau những gì bạn chỉnh sửa :)) Tôi có thể xác nhận cả hai câu trả lời đều hoạt động tốt. thêm một 'print (" hello ")' hoặc bất cứ điều gì –

3

Bạn đang không in các mảng có nhiều mảng.

Thêm dòng sau sau khi nhập khẩu:

pd.set_option('display.max_rows', 100000) 
+0

Cảm ơn bạn. Điều này làm việc. Tôi hơi bối rối thông qua, không nên 'total_list = np.array (total_list)' bí mật DataFrame để mảng numpy? – Harjatin

Các vấn đề liên quan