标签:pac 模拟 split 2.3 初始 copy ceil 正整数 ace
版本1.15.4
NumPy是一个Python科学计算的基础包,包含了多维数组对象(multidemensional array object)和诸如矩阵等多种衍生对象,然后基于此进行数学计算、逻辑计算、维度改变、排序、筛选、输入输出、离散傅里叶变换、基础线性代数、基础统计操作、随机模拟等等一系列操作。
NumPy的核心数据结构是一个包含同类型数据的多维数组ndarray,因为维度可能较高,所以常常使用一个包含正整数的元组进行索引,NumPy中维度又称“轴”(axis,复数是axes)
属性 | 解释 |
---|---|
ndarray.ndim | 返回ndarray的轴数 |
ndarray.shape | 以元组的形式返回ndarray的维度 |
ndarray.size | 返回ndarraty中元素的总数,相当于ndarray.shape中各个数字的乘积 |
ndarray.dtype | 返回ndarray中元素的类型,常见的有numpy.int32, numpy.float32, numpy.float64 |
ndarray.itemsize | 返回ndarray中元素所占的字节数 |
ndarray.data | 不建议使用 |
(1)直接将Python的列表或者元组(二者嵌套也可以)转换为多维数组;(适用于中小型数据的人工构建)
(2)使用NumPy初始化函数,通过占位符内容来初始化ndarray。(偏向大型数据的自动构建)
(3)从磁盘、标准格式、自定义格式中读取ndarray
(4)从字符串或缓存中创建
(5)使用特殊的库函数,比如random
函数 | 解释 |
---|---|
zeros(shape)/zeros_like() | 构建全0数组 |
ones(shape)/ones_like() | 构建全1数组 |
empty(shape)/empty_like() | 构建随机数组 |
arange(a, b, c) | 类似Python中range()的构建方法,a,b,c分别代表起始值、终止值、步长/方向 |
linspace(a, b, c) | 同上,只不过c不代表步长,而代表在a与b之间生成数字的个数 |
random.random(shape) | 创建指定维度的随机数组,元素为0到1之间 |
random.rand() | (**待补充**) |
random.randn() | (**待补充**) |
fromfunction() | (**待补充**) |
fromfile() | (**待补充**) |
函数 | 解释 |
---|---|
max(axis)/min(axis) | 统计最值 |
sum(axis) | 求和 |
np.exp(ndarray) | 计算自然指数 |
np.sqrt(ndarray) | 计算平方根 |
np.add(ndarray1, ndarray2) | 元素级数组相加,相当于ndarray1+ndarray2 |
np.floor(ndarray) | 计算小于的最大整数 |
np.ceil(ndarray) | 计算大于的最小整数 |
函数名 | 解释 |
---|---|
ndarray.ravel() | 将多维数组压成一个一维数组,并返回 |
ndarray.reshape(shape) | 将ndarray调整为指定的维度并返回,reshape([3, 4])或者reshape(3, 4)都可以,如果是reshape(3, -1)则表示最后一个轴自动计算 |
ndarray.resize(shape) | 原地方法,和reshape稍有不同 |
ndarray.T | 矩阵的转置 |
ndarray[:, newaxis] | 加一个轴,需要导入from numpy import newaxis |
函数名 | 解释 |
---|---|
np.vstack((ndarray1, ndarray2)) | 竖直堆积,对于二维数组等价于row_stack() |
np.hstack((ndarray1, ndarray2)) | 水平堆积,对于二维数组等价于column_stack() |
np.c() | 沿着第二个轴将切片对象连接在一起 |
np.r() | 沿着第一个轴将切片对象连接在一起 |
函数名 | 解释 |
---|---|
hsplit(ndarray, 3) | 将ndarray水平分割为三个大小相同的多维数组 |
hsplit(ndarray, (3, 4)) | 将ndarray水平分割为三个子数组,切割位置为第三列、第四列 |
vsplit() | 依次类推 |
复制分为深复制和浅复制两种,由于NumPy中的==运算符会产生布尔数组,所以常用is来区分二者。
NumPy中的深浅复制和其余语言不同,为了统一,在这里稍作修改:深复制得到的变量的值发生变化会引起原变量的值的变化,而浅复制则相反。
(1)赋值操作不是复制
执行了a = b
那么a is b
一定成立
(2)view()和base
ndarray的切片其实就是创建一个视图,而视图其实生成了一个新的数组对象,只不过在产生的过程中视图窗口中的数据保持不变,需要注意的是修改视图中的数据等价于修改原数据(修改视图的维度和数据类型除外)。
(3)copy()实现浅复制
copy()函数得到的是一个独立的数组对象副本,对此副本的所有操作,都将和原来数组无关。
标签:pac 模拟 split 2.3 初始 copy ceil 正整数 ace
原文地址:https://www.cnblogs.com/flyangovoyang/p/10489076.html