Package: np
np – create numpy arrays asnp[1,3,5], and morenp=numpy+ handy toolsIt’s easy: start by importingnp(the alias for numpy):importnpCreate a 1-D array:np[1,3,5]Create a 2-D matrix:np.m[1,2,3::4,5,6::7,8,9]For the numerical Python packagenumpyitself, seehttp://www.numpy.org/.The idea ofnpis to provide a way of creating numpy arrays with a compact syntax and without an explicit function call. Making the module namenpsubscriptable, while still keeping it essentially an alias for numpy, does this in a clean way.Any feedback is very welcome:koos.zevenhoven@aalto.fi.Getting StartedRequirementsWorks best with Python 3.5+ (Tested also with 3.4 and 2.7)numpy (you should install this using your python package manager likecondaorpip)Installationnpcan be installed withpiporpip3:$pipinstallnpor directly from the source code:$gitclonehttps://github.com/k7hoven/np.git$cdnp$pythonsetup.pyinstallBasic UsageEven before thenptool, a popular style of usingnumpyhas been to import it asnp:>>>importnumpyasnp>>>my_array=np.array([3,4,5])>>>my_2d_array=np.array([[1,2],[3,4]])The most important feature ofnpis to make the creation of arrays less verbose, while everything else works as before. The above code becomes:>>>importnp>>>my_array=np[3,4,5]>>>my_2d_array=np[[1,2],[3,4]]>>>my_matrix=np.m[1,2:3,4]>>>my_matrix2=np.m[1,2,3:...:4,5,6:...:7,8,9]>>>my_row_vector=np.m[1,2,3]As you can see from the above example, you can create numpy arrays by subscripting thenpmodule. Since most people would have numpy imported asnpanyway, this requires no additional names to clutter the namespace. Also, the syntaxnp[1,2,3]resembles the syntax forbytesliterals,b"asd".The above also shows how you can usenp.mand colons to easily create matrices (NxM) or row vectors (1xM).Thenppackage also provides a convenient way of ensuring something is a numpy array, that is, a shortcut tonumpy.asarray():>>>importnp>>>mylist=[1,3,5]>>>mylist+[7,9,11][1,3,5,7,9,11]>>>np(mylist)+[7,9,11]array([8,12,16])As an experimental feature, there are also shortcuts for giving the arrays a specific data type (numpy dtype):>>>np[1,2,3]array([1,2,3])>>>np.f[1,2,3]array([1.,2.,3.])>>>np.f2[1,2,3]array([1.,2.,3.],dtype=float16)>>>np.u4[1,2,3]array([1,2,3],dtype=uint32)>>>np.c[1,2,3]array([1.+0.j,2.+0.j,3.+0.j])Changelog1.0.0 (2017-09-20)Creating matrices is now even simpler:np.m[1, 2: 3, 4] == np.array([[1, 2], [3, 4]])

np.m[1, 2:
    :3, 4] == np.array([[1, 2], [3, 4]])

np.m[1, 2] == np.array([[1, 2]])

np.m[1, 2].T == np.array([[1],
                          [2]])np(...)corresponds tonp.asarray(...)Many improvements to error handlingSome more cleanups to type shortcuts0.2.0 (2016-03-29)Quick types are nownp.i,np.f,np.u,np.c, or with the
number ofbytesper value appended:np.i4-> int32,np.u2-> uint16,np.c16-> complex128, …
(still somewhat experimental)Removed the old np.i8 and np.ui8 which represented 8-bit types, which
was inconsistent with short numpy dtype names which correspond to numbers of
bytes. The rest of the bit-based shortcuts are deprecated and will be removed
later.Handle Python versions >=3.5 better; now even previously imported plain numpy
module objects become the exact same object as np.Tests for all np functionalityRidiculously slow tests that runs the numpy test suite several times to
make sure that np does not affect numpy functionality.Remove numpy from requirements and give a meaningful error instead if numpy
is missing (i.e. install it using your package manager like conda or pip)Better reprs for subscriptable array creator objects and the np/numpy module.0.1.4 (2016-01-26)Bug fix0.1.2 (2015-06-17)Improved experimental dtype shortcuts: np.f[1,2], np.i32[1,2], etc.0.1.1 (2015-06-17)PyPI-friendly readme0.1.0 (2015-06-17)First distributable versionEasy arrays such as np[[1,2],[3,4]]Shortcut for np.asanyarray(obj): np(obj)Experimental dtype shortcuts: np.f64[[1,2],[3,4]]