Python中numpy介绍的一道小题,求解答

numpy介绍(Numerical Python)提供了python对多維数组对象的支持:ndarray具有矢量运算能力,快速、节省空间numpy介绍支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的數学函数库

ndarray:N维数组对象(矩阵),所有元素必须是相同类型
ndarray属性:ndim属性,表示维度个数;shape属性表示各维度大小;dtype属性,表示数据类型

print '使用列表生成一维数组' print '使用列表生成二维数组'

三、指定ndarray数组元素的类型

print '生成指定元素类型的数组:設置dtype属性'
print '将字符串元素转换为数值元素'
print '使用其他数组的数据类型作为参数'

四、ndarray的矢量化计算

矢量运算:相同大小的数组键間的运算应用在元素上
矢量和标量运算:“广播”— 将标量“广播”到各个元素

五、ndarray数组的基本索引和切片

一维數组的索引:与Python的列表索引功能相似

  • [:] 代表某个维度的数据

六、ndarray数组的布尔索引和花式索引

布尔索引:使用布爾数组作为索引。arr[condition]condition为一个条件/多个条件组成的布尔数组。

# 布尔型数组的长度必须跟被索引的轴长度一致

花式索引:使用整型数组作为索引

七、ndarray数组的转置和轴对换

数组的转置/轴对换只会返回源数据的一个视图,不会对源数据进行修改

# 计算矩阵的內积 xTx # 使用轴交换进行数组矩阵转置

通用函数(ufunc)是一种对ndarray中的数据执行元素级运算的函数。

一元ufunc代码示例:

二元ufunc代码示例:

np.where(condition, x, y)第一个参数为一个布尔数组,第二个参数和第三个参数可以是标量也可以是数组

十、ndarray常用的统计方法

可以通过这些基本统计方法对整个数组/某个轴的数据进行统计计算。

用于布尔数组的统计方法:

  • sum : 统计数组/数组某一维度中的True的个数
  • any: 统計数组/数组某一维度中是否存在一个/多个True
  • all:统计数组/数组某一维度中是否都是True
print '用于布尔数组的统计方法'
 

使用sort对数组/数组某一维度进行就地排序(会修改数组本身)

#非就地排序:numpy介绍.sort()可产生数组的副本

十一、ndarray数组的去重以及集合运算

代码示例:(方法返回类型为一维数组(1d))

十二、numpy介绍中的线性代数

十三、numpy介绍中的随机数生成

十五、ndarray数组的拆分与合并

十六、数组的元素重复操作

print '数组的元素重复操作'
}

??最近使用keras做一些东西然后會经常用到numpy介绍来进行数组的操作。途中在网上查找了很多操作的相关方法这里将一些我常用到的方法记录在这,用于遗忘后自己查阅(估计自己以后会经常使用python==)也用于大家查阅。

??np.ones() 函数与np.zeros() 函数可以创建任意维度的全1或全0数组函数参数可按照IDE的提示来进行填写。

??具体就是先创建具有数据的列表然后将其转换为数组。如以下代码所示(我经常这样用==):

??由于python列表是层次嵌套的所以索引え素方法为a[i][j];而numpy介绍数组为一个整体,其索引方法为a[i, j]在此基础上就可以进行切片,比如:

  • a[i, 0:4]表示第i行第0到第4列(不包括第4列);
  • a[:-1, :]表示除朂后一行的所有行;
    以上方法同样可用于列。

??使用np.sort() 函数或数组对象本身的sort() 函数其中np.sort() 不改变原数组对象的顺序,而是返回一个排序后嘚数组对象如下代码所示:

将每一行看作整体,将所有行按照某一列的顺序进行排序

??(这个功能我也经常使用==)这里要提一下argsort() 函數,该函数返回数组沿指定轴排序后的索引我们可以使用某列排序后的索引来排序所有行。使用代码如下:

代码2 将所有行按第二列进行排序

??np.concatenate() 函数可以提供数组拼接操作使用代码如下:

}

我要回帖

更多关于 numpy介绍 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信