Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Print numpy array without ellipsis

I want to print a numpy array without truncation. I have seen other solutions but those don't seem to work.

Here is the code snippet:

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

And this is what the output looks like:

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 

This is the entire code. I might be making a mistake in type casting.

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) 
like image 302
Harjatin Avatar asked Jun 01 '17 15:06

Harjatin


People also ask

How do I display an entire NumPy array?

We set the print options for the array to be maximum with the np. set_printoptions(threshold = sys. maxsize) function. We then printed the full array with the simple print() function in Python.

How do I print a NumPy array without brackets?

To print a NumPy array without enclosing square brackets, the most Pythonic way is to unpack all array values into the print() function and use the sep=', ' argument to separate the array elements with a comma and a space.


2 Answers

use the following snippet to get no ellipsis.

import numpy import sys numpy.set_printoptions(threshold=sys.maxsize) 

EDIT:

If you have a pandas.DataFrame use the following snippet to print your array:

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

Or you can use the pandas.DataFrame.to_string() method to get the desired result.

EDIT':

An earlier version of this post suggested the option below

numpy.set_printoptions(threshold='nan') 

Technically, this might work, however, the numpy documentation specifies int and None as allowed types. Reference: https://docs.scipy.org/doc/numpy/reference/generated/numpy.set_printoptions.html.

like image 85
Szabolcs Dombi Avatar answered Sep 27 '22 19:09

Szabolcs Dombi


You can get around the weird Numpy repr/print behavior by changing it to a list:

print list(total_list) 

should print out your list of 2-element np arrays.

like image 34
a p Avatar answered Sep 27 '22 18:09

a p