0-hero's picture
Add files using upload-large-folder tool
79f9b39 verified
define([
"require",
"./numpy_ufuncs",
"./numpy_polynomial",
], function (requirejs, numpy_ufuncs, numpy_polynomial) {
return {
'name' : 'NumPy',
'sub-menu' : [
{
'name' : 'Setup',
'snippet' : [
'from __future__ import print_function, division',
'import numpy as np',
],
},
{
'name' : 'Documentation',
'external-link' : 'http://docs.scipy.org/doc/numpy/index.html',
},
'---',
{
'name' : 'Creating arrays',
'sub-menu' : [
{
'name' : 'New array of given shape',
'snippet' : ['new_array = np.zeros((4,3,), dtype=complex)',],
},
{
'name' : 'New array shaped like another',
'snippet' : ['new_array = np.zeros_like(old_array, dtype=complex)',],
},
{
'name' : 'Copy of existing data',
'snippet' : ['new_array = np.copy(old_array)',],
},
{
'name' : 'Array from list of data',
'snippet' : ['new_array = np.array([1.2, 3.4, 5.6])',],
},
{
'name' : 'Evenly spaced values within a given interval',
'snippet' : ['new_array = np.arange(1, 10, 2)'],
},
{
'name' : 'Evenly spaced numbers over a specified interval',
'snippet' : ['new_array = np.linspace(1., 10., num=120, endpoint=True)'],
},
{
'name' : 'Numbers spaced evenly on a log scale',
'snippet' : ['new_array = np.logspace(1., 10., num=120, endpoint=True, base=2)'],
},
{
'name' : 'Coordinate matrices from coordinate vectors',
'snippet' : [
'x = np.linspace(0, 1, 7)',
'y = np.linspace(0, 1, 11)',
'xx, yy = np.meshgrid(x, y)',
],
},
{
'name' : 'Return views of the data, split into $N$ groups',
'snippet' : [
'x = np.arange(12)',
'a,b,c = np.split(x, 3)',
],
},
{
'name' : 'Return views of the data, split at given indices along given axis',
'snippet' : [
'x = np.arange(27).reshape((3,9))',
'a,b,c = np.split(x, [2,6], axis=1)',
],
},
{
'name' : 'Return copy of arrays, combined into one',
'snippet' : [
'a = np.arange(30).reshape((2,3,5))',
'b = np.arange(42).reshape((2,3,7))',
'c = np.concatenate((a, b), axis=1)',
],
},
],
},
{
'name' : 'Reshaping and viewing arrays',
'sub-menu' : [
{
'name' : 'Return a view of the data, with a different shape',
'snippet' : ['np.arange(6).reshape((3, 2))'],
},
{
'name' : 'Return a view of the data, with an extra axis',
'snippet' : ['a[:, np.newaxis]'],
},
{
'name' : 'Return a view of the data, flattened to 1-D',
'snippet' : ['a.ravel()'],
},
{
'name' : 'Return a copy of the data, flattened to 1-D',
'snippet' : ['a.flatten()'],
},
{
'name' : 'Return a view of the data, with a different dtype',
'snippet' : ['np.linspace(0, 10, num=50).view(complex)'],
'sub-menu' : [
{
'name' : 'View real array as complex',
'snippet' : [
'r = np.linspace(0, 10, num=100).reshape((25,4))',
'c = r.view(complex)',
],
},
{
'name' : 'View complex array as real with extra dimension',
'snippet' : [
'c = (np.linspace(0, 10, num=50) + 1j*np.linspace(0, 10, num=50))',
'cv = c.view(float)',
'r = cv.reshape(c.shape + (2,))',
],
},
],
},
{
'name' : 'Return a copy of the data, cast to a different dtype',
'snippet' : ['np.linspace(0, 10, num=50).astype(complex)'],
},
{
'name' : 'Return a view of the data with indices reversed (transposed)',
'snippet' : ['np.arange(210).reshape((2,3,5,7)).transpose()'],
},
{
'name' : 'Return a view of the data with indices permuted',
'snippet' : ['np.arange(210).reshape((2,3,5,7)).transpose((2,1,0,3))'],
},
{
'name' : 'Exchange two axes in an array',
'snippet' : ['np.arange(210).reshape((2,3,5,7)).swapaxes(1,3)'],
},
{
'name' : 'Permute axes, bringing given axis into new position',
'snippet' : ['np.rollaxis(np.arange(210).reshape((2,3,5,7)), 2, 0)'],
},
{
'name' : 'Permute indices by a given amount along the given axis',
'snippet' : ['np.roll(np.arange(10).reshape((2,5)), 2, axis=1)'],
},
{
'name' : 'Return views of the data, split into $N$ groups',
'snippet' : [
'x = np.arange(12)',
'a,b,c = np.split(x, 3)',
],
},
{
'name' : 'Return views of the data, split at given indices along given axis',
'snippet' : [
'x = np.arange(27).reshape((3,9))',
'a,b,c = np.split(x, [2,6], axis=1)',
],
},
{
'name' : 'Return copy of arrays, combined into one',
'snippet' : [
'a = np.arange(30).reshape((2,3,5))',
'b = np.arange(42).reshape((2,3,7))',
'c = np.concatenate((a, b), axis=1)',
],
},
],
},
{
'name' : 'Indexing and testing arrays',
'sub-menu' : [
{
'name' : 'Indexing documentation',
'external-link' : 'http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html',
},
'---',
{
'name' : 'Test if array is empty',
'snippet' : [
'if a.size > 0: # Never use `if a` or `if len(a)` for numpy arrays',
' print(a)',
],
},
{
'name' : 'Get number of dimensions of array',
'snippet' : ['a.ndim'],
},
{
'name' : 'Get shape of array',
'snippet' : ['a.shape'],
},
{
'name' : 'Index a one-dimensional array',
'sub-menu' : [
{
'name' : 'Get one element',
'snippet' : [
'a = np.arange(10)',
'a[3]'
],
},
{
'name' : 'Get first $N$ elements',
'snippet' : [
'a = np.arange(10)',
'a[:3]'
],
},
{
'name' : 'Get last $N$ elements',
'snippet' : [
'a = np.arange(10)',
'a[-3:]'
],
},
{
'name' : 'Get elements $N$ to $M$',
'snippet' : [
'a = np.arange(10)',
'a[3:6]'
],
},
{
'name' : 'Get elements satisfying a condition',
'snippet' : [
'a = np.arange(10)',
'a[a>5]'
],
},
],
},
{
'name' : 'Index a multi-dimensional array',
'sub-menu' : [
{
'name' : 'Get one element',
'snippet' : [
'a = np.arange(30).reshape((2,3,5))',
'a[1, 2, 4]'
],
},
{
'name' : 'Get first $N$ elements along each final axis',
'snippet' : [
'a = np.arange(30).reshape((2,3,5))',
'a[:, :, :4]'
],
},
{
'name' : 'Get last $N$ elements along each final axis',
'snippet' : [
'a = np.arange(30).reshape((2,3,5))',
'a[:, :, -3:]'
],
},
{
'name' : 'Get elements $N$ to $M$ along each final axis',
'snippet' : [
'a = np.arange(30).reshape((2,3,5))',
'a[:, :, 3:5]'
],
},
{
'name' : 'Get elements satisfying a condition (flattened result)',
'snippet' : [
'a = np.arange(30).reshape((2,3,5))',
'a[a>5]'
],
},
],
},
{
'name' : 'Index an array of unknown dimension',
'sub-menu' : [
{
'name' : 'Get first $N$ elements along each final axis',
'snippet' : [
'a = np.arange(30).reshape((2,3,5))',
'a[..., :4]'
],
},
{
'name' : 'Get last $N$ elements along each final axis',
'snippet' : [
'a = np.arange(30).reshape((2,3,5))',
'a[..., -3:]'
],
},
{
'name' : 'Get elements $N$ to $M$ along each final axis',
'snippet' : [
'a = np.arange(30).reshape((2,3,5))',
'a[..., 3:5]'
],
},
{
'name' : 'Get elements satisfying a condition (flattened result)',
'snippet' : [
'a = np.arange(30).reshape((2,3,5))',
'a[a>5]'
],
},
],
},
{
'name' : '',
'snippet' : [
''
],
},
],
},
numpy_ufuncs,
numpy_polynomial,
// {
// 'name' : 'Polynomials',
// 'external-link' : 'http://docs.scipy.org/doc/numpy/reference/routines.polynomials.html',
// // 'sub-menu' : [
// // ],
// },
{
'name' : 'Pretty printing',
'sub-menu' : [
{
'name' : 'Context manager',
'snippet' : [
'import contextlib',
'@contextlib.contextmanager',
'def printoptions(*args, **kwargs):',
' original = np.get_printoptions()',
' np.set_printoptions(*args, **kwargs)',
' yield',
' np.set_printoptions(**original)',
],
},
'---',
{
'name' : 'Print to given precision',
'snippet' : [
'with printoptions(precision=5):',
' print(np.random.random(10))',
],
},
{
'name' : 'Summarize arrays with more than $N+1$ elements',
'snippet' : [
'with printoptions(threshold=5):',
' print(np.random.random(10))',
],
},
{
'name' : 'Print $N$ elements at each end of a summary',
'snippet' : [
'with printoptions(threshold=5, edgeitems=4):',
' print(np.random.random(10))',
],
},
{
'name' : 'Set number of characters per line',
'snippet' : [
'with printoptions(linewidth=100):',
' print(np.random.random(10))',
],
},
{
'name' : 'Suppress printing of small values',
'snippet' : [
'with printoptions(suppress=True):',
' print(1e-8*np.random.random(10))',
],
},
{
'name' : 'Set string with which to represent nan',
'snippet' : [
"with printoptions(nanstr='NaN!'):",
' print(np.array([1, np.nan, 3]))',
],
},
{
'name' : 'Set string with which to represent infinity',
'snippet' : [
"with printoptions(infstr='oo'):",
' print(np.array([1, np.inf, 3]))',
],
},
{
'name' : 'Formatting functions for specific dtypes',
'sub-menu' : [
{
'name' : 'Set formatter for `bool` type',
'snippet' : [
"def format_bool(x):",
" if x:",
" return 'TRUE'",
" else:",
" return 'FALSE'",
"with printoptions(formatter={'bool': format_bool}):",
" print(np.random.randint(0,2,10).astype(bool))",
],
},
{
'name' : 'Set formatter for `int` type',
'snippet' : [
"def format_int(x):",
" return 'int({0})'.format(x)",
"with printoptions(formatter={'int': format_int}):",
" print(np.random.randint(-3, 4, 10))",
],
},
{
'name' : 'Set formatter for `timedelta` type',
'snippet' : [
"def format_timedelta(delta):",
" days = delta.astype('timedelta64[D]').astype(int)",
" hours = delta.astype('timedelta64[h]').astype(int) - 24*days",
" minutes = delta.astype('timedelta64[m]').astype(int) - 60*(24*days+hours)",
" seconds = delta.astype('timedelta64[s]').astype(int) - 60*(60*(24*days+hours)+minutes)",
" return '{0}days,{1}hours,{2}minutes,{3}seconds'.format(days, hours, minutes, seconds)",
"with printoptions(formatter={'timedelta': format_timedelta}):",
" print(np.array([np.timedelta64(int(sec), 's') for sec in np.random.randint(0, 1000000, 10)]))",
],
},
{
'name' : 'Set formatter for `datetime` type',
'snippet' : [
"def format_datetime(date):",
" year = date.astype('datetime64[Y]').astype(int) + 1970",
" month = date.astype('datetime64[M]').astype(int) % 12 + 1",
" day = (date - date.astype('datetime64[M]')).astype(int) + 1",
" return 'Y{0}:M{1}:D{2}'.format(year, month, day)",
"with printoptions(formatter={'datetime': format_datetime}):",
" days = np.random.randint(0, 20000, 10)",
" dates = np.array([np.datetime64(int(d), 'D') for d in days])",
" print(dates)",
],
},
{
'name' : 'Set formatter for `float` type',
'snippet' : [
"def format_float(x):",
" return '{0:+0.2f}'.format(x)",
"with printoptions(formatter={'float': format_float}):",
" print(np.random.random(10)-0.5)",
],
},
{
'name' : 'Set formatter for `longfloat` type',
'snippet' : [
"def format_longfloat(x):",
" return 'long{0}'.format(x)",
"with printoptions(formatter={'longfloat': format_longfloat}):",
" print(np.random.random(10).astype(np.longfloat))",
],
},
{
'name' : 'Set formatter for `complexfloat` type',
'snippet' : [
"def format_complexfloat(x):",
" return '{0.real}+1j*{0.imag}'.format(x)",
"with printoptions(formatter={'complexfloat': format_complexfloat}):",
" print(np.random.random(5)+1j*np.random.random(5))",
],
},
{
'name' : 'Set formatter for `longcomplexfloat` type',
'snippet' : [
"def format_longcomplexfloat(x):",
" return '{0.real}+1j*{0.imag}'.format(x)",
"with printoptions(formatter={'longcomplexfloat': format_longcomplexfloat}):",
" print(np.random.random(5).astype(np.longfloat)+1j*np.random.random(5).astype(np.longfloat))",
],
},
// {
// 'name' : 'Set formatter for `numpy_str` type',
// 'snippet' : [
// "def format_numpy_str(x):",
// " return 'n\"{0}\"'.format(x)",
// "with printoptions(formatter={'numpy_str': format_numpy_str}):",
// " print(np.random.random(10))",
// ],
// },
// {
// 'name' : 'Set formatter for `str` type',
// 'snippet' : [
// "def format_str(x):",
// " return '\"{0}\"'.format(x)",
// "with printoptions(formatter={'str': format_str}):",
// " print(np.random.random(10))",
// ],
// },
'---',
{
'name' : 'Set formatter for all types',
'snippet' : [
"def format_all(x):",
" return 'repr({0})'.format(repr(x))",
"with printoptions(formatter={'all': format_all}):",
" print(np.array([3, 8]))",
" print(np.array([0.1, 0.5]))",
" print(np.array([1.4+2.3j, 2.8+4.6j]))",
" print(np.array(['abc', 'xyz']))",
],
},
{
'name' : 'Set formatter for all `int` types',
'snippet' : [
"def format_int_kind(x):",
" return 'int({0})'.format(x)",
"with printoptions(formatter={'int_kind': format_int_kind}):",
" print(np.random.randint(-100, 100, 10))",
],
},
{
'name' : 'Set formatter for all `float` types',
'snippet' : [
"def format_float_kind(x):",
" return '{0:.2%}'.format(x)",
"with printoptions(formatter={'float_kind': format_float_kind}):",
" print(np.random.random(10))",
],
},
{
'name' : 'Set formatter for all `complex` types',
'snippet' : [
"def format_complex_kind(x):",
" return '{0.real}+1j*{0.imag}'.format(x)",
"with printoptions(formatter={'complex_kind': format_complex_kind}):",
" print(np.random.random(5)+1j*np.random.random(5))",
],
},
{
'name' : 'Set formatter for all `str` types',
'snippet' : [
"def format_str_kind(x):",
" return 'str({0})'.format(x)",
"with printoptions(formatter={'str_kind': format_str_kind}):",
" print(np.array(['abc', 'xyz']))",
],
},
],
},
],
},
{
'name' : 'File I/O',
'sub-menu' : [
{
'name' : 'Read data from simple text file',
'snippet' : [
'data = np.loadtxt(filename)',
],
},
{
'name' : 'Read data from text file with missing values',
'snippet' : [
'data = np.genfromtxt(filename)',
],
},
{
'name' : 'Read data from .npy or .npz file',
'snippet' : [
'data = np.load(filename)',
],
},
'---',
{
'name' : 'Write single array to text file',
'snippet' : [
'np.savetxt(filename, x)',
],
},
{
'name' : 'Write multiple arrays to text file',
'snippet' : [
'np.savetxt(filename, np.transpose((x, y, z)))',
],
},
{
'name' : 'Write single array to single .npy file',
'snippet' : [
'np.save(filename, x)',
],
},
{
'name' : 'Write multiple arrays to single .npy file',
'snippet' : [
'np.save(filename, np.transpose((x, y, z)))',
],
},
{
'name' : 'Write multiple arrays to single .npz file',
'snippet' : [
'np.savez(filename, x, y, z)',
],
},
{
'name' : 'Write multiple arrays to single compressed .npz file',
'snippet' : [
'np.savez_compressed(filename, x, y, z)',
],
},
],
},
]
}
}
);