重温《利用Python进行数据分析》-第4章-3
数组转置和轴对换,数组不仅有transpose方法,还有一个特殊的T属性:
In [99]: arr=np.arange(15).reshape((3,5))
In [100]: arr
Out[100]:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
In [101]: arr.T
Out[101]:
array([[ 0, 5, 10],
[ 1, 6, 11],
[ 2, 7, 12],
[ 3, 8, 13],
[ 4, 9, 14]])
通用函数
In [102]: arr=np.arange(10)
In [103]: arr
Out[103]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In [104]: np.sqrt(arr)
Out[104]:
array([0. , 1. , 1.41421356, 1.73205081, 2. ,
2.23606798, 2.44948974, 2.64575131, 2.82842712, 3. ])
另外一些函数add或maximum接受2个数组,并返回一个结果数组
In [109]: x=np.random.randn(9)
In [110]: y=np.random.randn(9)
In [111]: np.maximum(x,y)
Out[111]:
array([ 0.82602995, -0.38349433, 1.17788379, 0.60382314, 0.7211279 ,
0.04750648, 0.13972083, 0.54813441, 1.25338131])

numpy.where函数是三元表达式x if condition else y的矢量化版本。
In [141]: resule=np.where(cond,xarr,yarr) In [142]: resule Out[142]: array([1.1, 2.2, 1.3, 1.4, 2.5])
np.where的第二、第三个参数不必是数组,可以是标量值
In [144]: arr=np.random.randn(4,4)
In [145]: arr
Out[145]:
array([[ 0.81510199, 0.87467714, -1.36632713, 0.03928432],
[ 2.15815895, -0.20202589, 0.89246021, -0.08146625],
[-0.38186056, -0.33593038, -1.47024412, -1.2114787 ],
[ 0.71705331, 0.7387612 , -0.30762999, -0.25966833]])
In [146]: np.where(arr>0,2,-2)

浙公网安备 33010602011771号