7个罕见的Numpy函数!
本文介绍的是numpy中少见但是非常实用的7个函数。
In [1]:
1 | import pandas as pd |
np.where()
功能和TensorFlow中的where函数相同,下面介绍用法
In [2]:
1 | m = np.arange(0,15,2) |
Out[2]:
1 | array([ 0, 2, 4, 6, 8, 10, 12, 14]) |
In [3]:
1 | # 情形1 |
Out[3]:
1 | array([-1, 1, 1, 1, 1, 1, 1, 1]) |
上面结果中如何m为真则输出1,否则输出-1。在m的取值中0代表的就是False,其他的为True。
In [4]:
1 | # 情形2 |
Out[4]:
1 | array([-1, 1, 1, 1, 1, 1, 1, 1]) |
判断条件是m大于等于2,则输出1;否则输出-1
In [5]:
1 | # 情形3 |
Out[5]:
1 | (array([1, 2, 3, 4, 5, 6, 7]),) |
当执行完条件后面没有规定输出的内容,直接输出满足要求数据的索引值
In [6]:
1 | m[np.where(m>=2)] |
Out[6]:
1 | array([ 2, 4, 6, 8, 10, 12, 14]) |
np.random.RandomState.rand(维度)
返回[0,1)之间的随机数
In [7]:
1 | rdm = np.random.RandomState(seed=1) |
In [8]:
1 | rdm.rand() # 返回单个0-1之间的数值 |
Out[8]:
1 | 0.417022004702574 |
如果不指定维度,就是返回0到1之间的某个数值
In [9]:
1 | rdm.rand(2,3) # 指定维度 3*2 |
Out[9]:
1 | array([[7.20324493e-01, 1.14374817e-04, 3.02332573e-01], |
In [10]:
1 | rdm.rand(4,3) # 4*3 |
Out[10]:
1 | array([[0.34556073, 0.39676747, 0.53881673], |
np.vstack()
将两个数值按垂直方向叠加
1 | np.vstack(array1, array2) |
In [11]:
1 | array1 = np.array([1,2,3]) |
In [12]:
1 | np.vstack([array1,array2]) |
Out[12]:
1 | array([[1, 2, 3], |
In [13]:
1 | array3 = np.array([[1,2,3], |
In [14]:
1 | np.vstack([array3,array4]) |
Out[14]:
1 | array([[ 1, 2, 3], |
np.mgrid()
np.mgrid[起始值:结束值:步长, 起始值:结束值:步长]
In [15]:
1 | import numpy as np |
In [16]:
1 | x,y = np.mgrid[1:4:1, 2:4:0.5] |
In [17]:
1 | x |
Out[17]:
1 | array([[1., 1., 1., 1.], |
In [18]:
1 | y |
Out[18]:
1 | array([[2. , 2.5, 3. , 3.5], |
.ravel()
将多维数组拉直成为一维
In [19]:
1 | x.ravel() |
Out[19]:
1 | array([1., 1., 1., 1., 2., 2., 2., 2., 3., 3., 3., 3.]) |
In [20]:
1 | y.ravel() |
Out[20]:
1 | array([2. , 2.5, 3. , 3.5, 2. , 2.5, 3. , 3.5, 2. , 2.5, 3. , 3.5]) |
.flatten()
和上面的ravel效果相同
In [21]:
1 | .flatt ) |
Out[21]:
1 | array([1., 1., 1., 1., 2., 2., 2., 2., 3., 3., 3., 3.]) |
In [22]:
1 | y.flatten() |
Out[22]:
1 | array([2. , 2.5, 3. , 3.5, 2. , 2.5, 3. , 3.5, 2. , 2.5, 3. , 3.5]) |
np.c_
将数值之间的值进行配对
In [23]:
1 | np.c_[x.ravel(), y.ravel()] |
Out[23]:
1 | array([[1. , 2. ], |