numpy常用技巧

numpy.append(arr, values, axis=None)

数据拼接

注意是两个数据的拼接

当不输入axis参数时,此时默认axis = None,两个array的shape可以不一样。否则会出错。

当输入axis参数时,其所对应axis值的shape被拼在一起,而其他的shape值应当一样。

此时两个array被拼接在了一起。

再来一例子:

 可以看到是shape[2](不同部分)被拼接了,但shape[0]和shape[1](相同部分)没变

numpy.concatenate((a1, a2, ...), axis=0, out=None)

和numpy.append其实非常像,不过append只支持两个array的拼接,但concatenate支持多个array的拼接。

参数格式的要求也不太一样,append中前两个参数为输入的array,但concatenate中第一个参数为一个tuple。axis的含义是类似的。

另外concatenate不支持shape完全不同的array进行组合。

直接对一个array进行concatenate也是可以的,这相当于将list转为tuple后输入。

 

numpy.reshape(a, newshape, order='C')

改变数据的shape

第一个参数为array,第二个参数为新的shape

reshape也可以作为array的成员函数来使用,只有newshape这个参数

newshape中可以有一个dimension写成-1

 

numpy.clip(a, a_min, a_max, out=None)

取最大最小值

输入数组a,依次对每个数进行最大最小值操作:a[i] = max(a[i], a_max); a[i] = min(a[i], a_min); 

 

numpy.genfromtxt(fname, dtype=<class'float'>, delimiter=None, encoding='bytes', ......)

从文件中读取数据

dtype:数据类型

delimiter:分隔符,默认情况下会以空白符为分隔

会自动按矩阵的形式读入,文件中的一行对应矩阵中的一行

例子一:

例子二:

文件:

读取:

 

numpy.ndarray.flatten(order='C')

将数据变成一维

 

numpy.power(x1, x2[, out])

对数组element-wise地取平方

x2可以是数,也可以是和x1shape一样的array

如:

 

numpy.nonzero(a)

返回array中值为非0元素的下标

如:

注意:这里返回tuple中有两个array,第一个array表示非零元素的第一维,第二个array表示非零元素的第二维,例如[0,0]表示第一个非零元素1的下标

求非0元素的值:

按元素来表示,而不是按维度来表示:

 

numpy.where(condition[, x, y])

condition为矩阵时,为True用x中的元素,为False用y中的元素(此时condition,x,y三个array的shape相同)

没有condition参数,默认情况下为numpy.nonzero()

如:

condition为矩阵时:

没有condition参数的默认情况:

同样没有condition参数,还可以直接加判断条件用:

 

posted @ 2018-06-11 17:51  sbj123456789  阅读(289)  评论(0编辑  收藏  举报