numpy学习笔记
1、np.set_printoptions()
set_printoptions(precision=None, threshold=None, edgeitems=None, linewidth=None, suppress=None, nanstr=None, infstr=None, formatter=None)
这个函数用来设置屏幕数组打印的显示方式
precision : int, optional,float输出的精度,即小数点后维数,默认8( Number of digits of precision for floating point output (default 8))
threshold : int, optional,当数组数目过大时,设置显示几个数字,其余用省略号(Total number of array elements which trigger summarization rather than full repr (default 1000).)
edgeitems : int, optional,边缘数目(Number of array items in summary at beginning and end of each dimension (default 3)).
linewidth : int, optional,The number of characters per line for the purpose of inserting line breaks (default 75).
suppress : bool, optional,是否压缩由科学计数法表示的浮点数(Whether or not suppress printing of small floating point values using scientific notation (default False).)
nanstr : str, optional,String representation of floating point not-a-number (default nan).
infstr : str, optional,String representation of floating point infinity (default inf).
formatter : dict of callables, optional
If not None, the keys should indicate the type(s) that the respective formatting function applies to. Callables should return a string. Types that are not specified (by their corresponding keys) are handled by the default formatters. Individual types for which a formatter can be set are:
eg:np.set_printoptions(threshold=np.nan)
设置打印时显示方式,threshold=np.nan意思是输出数组的时候完全输出,不需要省略号将中间数据
>>> np.set_printoptions(precision=4)
>>> print np.array([1.123456789])
[ 1.1235]
>>> np.set_printoptions(threshold=5)
>>> print np.arange(10)
[0 1 2 ..., 7 8 9]
>>> eps = np.finfo(float).eps
>>> x = np.arange(4.)
>>> x**2 - (x + eps)**2
array([ -4.9304e-32, -4.4409e-16, 0.0000e+00, 0.0000e+00])
>>> np.set_printoptions(suppress=True)
>>> x**2 - (x + eps)**2
array([-0., -0., 0., 0.])
>>> np.set_printoptions(formatter={'all':lambda x: 'int: '+str(-x)})
>>> x = np.arange(3)
>>> x
array([int: 0, int: -1, int: -2])
>>> np.set_printoptions() # formatter gets reset
>>> x
array([0, 1, 2])
2、numpy中的乘法
>>> import numpy as np
>>> a=np.array([[1,2,3],[2,3,4]])
>>> a
array([[1, 2, 3],
[2, 3, 4]])
>>> a.shape
(2, 3)
>>> a.size
6
>>> b=np.array([1,2,3])
>>> b
array([1, 2, 3])
>>> b.shape
(3,)
>>> a*b #对应元素相乘(点乘)
array([[ 1, 4, 9],
[ 2, 6, 12]])
>>> np.multiply(a,b)
array([[ 1, 4, 9],
[ 2, 6, 12]])
>>> a@b #内积
array([14, 20])
>>> np.dot(a,b)
array([14, 20])
>>> b.T #注意一位数组的转置不变
array([1, 2, 3])
>>> a.T
array([[1, 2],
[2, 3],
[3, 4]])
>>>
3、np.flatten()
该函数返回一个折叠成一维的数组
>>> a = np.array([[1,2], [3,4]])
>>> a.flatten()
array([1, 2, 3, 4])
>>> a.flatten('F') #按竖的方向降
array([1, 3, 2, 4])