首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NumPy Essentials 注释源码 二、NumPy 数组对象

# 来源:NumPy Essentials ch2 数组索引和切片 # 创建 100x100 个 0~1 随机数 x = np.random.random((100, 100)) # 取第 42...''' 计算第零列和 ''' return np.sum(x[:, 0]) ''' 我们可以看到,C 风格数组按行访问比较快 F 风格数组按列访问比较快 %timeit...# 最简单方式就是从 Python 列表创建 NumPy 数组 x = np.array([1, 2, 3]) y = np.array(['hello', 'world']) # 但有时我们想创建范围内数值数组...x = range(5) y = np.array(x) # NumPy 有个辅助函数 # 等价于上面的操作 x = np.arange(5) # 多维数组也是一样 x = np.array...# zeros(size) 和 ones(size) 创建指定形状全零或全一数组 # eye(n) 创建 n 维单位矩阵 # full(size, n) 创建指定形状纯量数组,所有元素都为 n 数据类型

49330

NumPy Essentials 注释源码 三、NumPy 数组使用

# 来源:NumPy Essentials ch3 向量化 import numpy as np # NumPy 数组运算是向量化 # 数组和标量运算是每个元素和标量运算 x = np.array..., True, True, False], dtype=bool) # NumPy 使用 C 语言编译出来代码来处理数据 # 所以很快 x = np.arange(10000) ''' %timeit...,所以会新增一个维度 # 结果会创建一维数组数组 np.vstack([x, y]) ''' array([[ 0, 2, 4, 6, 8], [ 0, -1, -2, -3...可接受布尔数组作为索引 # 布尔数组形状需要与原数组一致 # True 元素表示取该值,False 表示不取 # 结果是一维数组 x [mask] = 0 x # array([1, 3, 0, 5...numpy.resize Return a new array with the specified shape. ''' # 每个函数或方法文档字符串中 # 都包含它 API 文档

74960
您找到你想要的搜索结果了吗?
是的
没有找到

NumPy Cookbook 注释源码 六、NumPy 特殊数组与通用函数

# 来源:NumPy Cookbook 2e ch6 创建通用函数 from __future__ import print_function import numpy as np # 我们需要定义对单个元素操作函数...# 并且拥有许多字符串专用方法 # 虽然我们可以为字符串创建通用函数 # 但是直接使用这些方法更省事 import urllib2 import numpy as np import re...() print(carray) 创建屏蔽数组 from __future__ import print_function import numpy as np from scipy.misc import...(inside) plt.tight_layout() plt.show() 记录数组 # rec.array 是 array 子类 # 可以通过元素属性来访问元素 from __future...tickers): # 获取收盘价、计算对数收益 close = get_close(ticker) logrets = np.diff(np.log(close)) # 保存符号

48230

NumPy Cookbook 注释源码 二、NumPy 高级索引和数组概念

花式索引 # 这个代码通过将数组对角线上元素设为 0 ,来展示花式索引 # 花式索引就是使用数组作为索引来索引另一个数组 # 来源:NumPy Cookbook 2e Ch2.6 import scipy.misc...0 ~ height - 1 数组 lena[range(height), range(width - 1, -1, -1)] = 0 # 画出对角线 Lena 图像 plt.imshow(lena...分离数独九宫格 # 来源:NumPy Cookbook 2e Ch2.9 import numpy as np # 数独是个 9x9 二维数组 # 包含 9 个 3x3 九宫格 sudoku...plt.subplot(2, 1, 1) plt.title("Original") plt.plot(data) # 使音频更安静 # 数组广播意思是,两个数组进行运算时 # 较小尺寸数组会扩展自身...,与较大数组对齐 # 如果数组与标量运算,那么将标量与数组每个元素运算 # 所以这里数组每个元素都 x 0.2 # 具体规则请见官方文档 newdata = data * 0.2 newdata

76740

原生 Python 和广播 Numpy

利用 Python 原生功能,创建一个二维 list,变量名称为 x ,其 shape 为 (3,1) In [3]: x = [[3],[1],[4]]In [15]: xOut[15]: [[3...接下来,分别比较它们各自对应元素,如果 x[i][j] < y[i][j] ,则选择 x[i][j] ,并加 1, 否则,选择 y[i][j], 并减 1,并返回一个对应维度二维 list....如果使用 Numpy函数,可能只需要 1 行, In [33]: np.where(np.array(x)<np.array(y),np.array(x)+1,np.array(y)-1)...,x , y 和 condition 需要是可广播,并最终传播为某种 shape....之所以,从文章开头到后面大部分篇幅,都在使用 Python 原生功能实现与 Numpy 同样效果,就是为了更好说明 Numpy 传播机制。 通过对比,或许更容易明白 Numpy 传播机制。

89320

初探numpy——数组创建

方法创建数组 numpy.empty方法可以创建一个指定形状、数据类型且未初始化数组 numpy.empty(shape , dtype = float , order = 'C') 参数 描述 shape...方法创建数组 numpy.zeros方法可以创建一个指定大小数组数组元素以0来填充 numpy.zeros(shape , dtype = float , order = 'C') 参数 描述 shape...使用numpy.ones方法创建数组 numpy.ones方法可以创建一个指定大小数组数组元素以1来填充 numpy.ones(shape , dtype = float , order = 'C'...方法创建数组 numpy.linspace用于创建一个一维等差数列数组 numpy.linspace(start , stop, num=50 , endpoint=True , retstep =...方法创建数组 numpy.linspace用于创建一个一维等比数列数组 numpy.linspace(start , stop , num = 50 , endpoint = True , base

1.7K10

Numpy数组维度

., 23) 进行重新排列时,在多维数组多个轴方向上,先分配最后一个轴(对于二维数组,即先分配行方向,对于三维数组即先分配平面的方向) # 代码 import numpy as np # 一维数组...a = np.arange(24) print("a维度:\n",a.ndim) # 现在调整其大小,2行3列4个平面 b = np.reshape(np.arange(24), (2, 3, 4)...) # b 现在拥有三个维度 print("b(也是三维数组):\n",b) # 分别看看每一个平面的构成 print("b每一个平面的构成:\n") print(b[:, :, 0]) print(...b[:, :, 1]) print(b[:, :, 2]) print(b[:, :, 3]) # 运行结果 a维度: 1 b(也是三维数组): [[[ 0 1 2 3] [ 4 5...6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]] b每一个平面的构成: [[ 0 4 8] [

1.5K30

NumPy 数组过滤、NumPy随机数、NumPy ufuncs】

python之Numpy学习 NumPy 数组过滤 从现有数组中取出一些元素并从中创建新数组称为过滤(filtering)。 在 NumPy 中,我们使用布尔索引列表来过滤数组。...上例是 NumPy 中非常常见任务,NumPy 提供了解决该问题好方法。...实例 生成一个 0 到 100 之间随机浮点数: from numpy import random x = random.rand() print(x) 生成随机数组NumPy 中,我们可以使用上例中两种方法来创建随机数组...实例 生成包含 5 个随机浮点数 1-D 数组: from numpy import random x = random.rand(5) print(x) 实例 生成有 3 行 2-D 数组...实例 生成由数组参数(3、5、7 和 9)中值组成二维数组: from numpy import random x = random.choice([3, 5, 7, 9], size=(3,

9210

Numpy轴及numpy数组转置换轴

前言: 在现代数据科学和机器学习领域,NumPy成为了Python中最为强大和广泛使用科学计算库之一。它提供了高性能多维数组对象,以及用于处理这些数组各种数学函数。...本文将探讨NumPy中一个关键而强大概念——轴(axis)以及如何利用数组转置来灵活操作这些轴。 随着数据集不断增大和复杂性提高,了解如何正确使用轴成为提高代码效率和数据处理能力关键一环。...让我们深入探讨NumPy数组轴以及如何通过转置操作来灵活地操控数据,为您科学计算和数据分析工作提供更为精细控制。...Numpy轴 import numpy as np 数组=np.array([[[1,2],[4,5],[7,8]],[[8,9],[11,12],[14,15]],[[10,11],[13,14],...] 也就是把数组 [ 0,1 ] 一维数组变成数组[ 1,0 ] numpy数组转置换轴 transpose方法 【行列转置】 import numpy as np 数组=np.arange(24

14910

numpy数组遍历技巧

numpy中,当需要循环处理数组元素时,能用内置通函数实现肯定首选通函数,只有当没有可用通函数情况下,再来手动进行遍历,遍历方法有以下几种 1....,所以通过上述方式只能访问,不能修改原始数组值。...2. flat迭代器 数组flat属性返回数组迭代器,通过这个迭代器,可以一层for循环就搞定多维数组访问,用法如下 >>> a array([[ 0, 1, 2, 3], [...print(i) ... 0 1 2 3 4 5 6 7 8 9 10 11 3. nditer迭代器 numpynditer函数可以返回数组迭代器,该迭代器功能比flat更加强大和灵活,在遍历多维数组时...for循环迭代数组即可,注意二维数组和一维数组区别,nditer3个特点对应不同使用场景,当遇到对应情况时,可以选择nditer来进行遍历。

12.2K10

numpy掩码数组

numpy中有一个掩码数组概念,需要通过子模块numpy.ma来创建,基本创建方式如下 >>> import numpy as np >>> import numpy.ma as ma >>> a...上述代码中,掩藏了数组前3个元素,形成了一个新掩码数组,在该掩码数组中,被掩藏前3位用短横杠表示,对原始数组和对应掩码数组同时求最小值,可以看到,掩码数组中只有未被掩藏元素参与了计算。...掩码数组赋予了我们重新选择元素权利,而不用改变矩阵维度。...在numpy.ma子模块中,还提供了多种创建掩码数组方式,用法如下 >>> import numpy.ma as ma >>> a array([0, 1, 2, 3, 4]) # 等于2元素被掩盖...(data = [0 1 -- 3 4], mask = [False False True False False], fill_value = 2) # 不等

1.8K20

数组元素积符号

题目 已知函数 signFunc(x) 将会根据 x 正负返回特定值: 如果 x 是正数,返回 1 。 如果 x 是负数,返回 -1 。 如果 x 是等于 0 ,返回 0 。...给你一个整数数组 nums 。 令 product 为数组 nums 中所有元素值乘积。 返回 signFunc(product) 。...示例 1: 输入:nums = [-1,-2,-3,-4,3,2,1] 输出:1 解释:数组中所有值乘积是 144 ,且 signFunc(144) = 1 示例 2: 输入:nums = [1,5,0,2...,-3] 输出:0 解释:数组中所有值乘积是 0 ,且 signFunc(0) = 0 示例 3: 输入:nums = [-1,1,-1,1,-1] 输出:-1 解释:数组中所有值乘积是 -1 ,...博客地址 https://michael.blog.csdn.net/ 长按或扫码关注我公众号(Michael阿明),一起加油、一起学习进步!

31420

numpy数组操作相关函数

numpy中,有一系列对数组进行操作函数,在使用这些函数之前,必须先了解以下两个基本概念 副本 视图 副本是一个数组完整拷贝,就是说,先对原始数据进行拷贝,生成一个新数组,新数组和原始数组是独立...,对副本操作并不会影响到原始数组;视图是一个数组引用,对引用进行操作,也就是对原始数据进行操作,所以修改视图会对应修改原始数组。...一个基本例子如下 >>> import numpy as np >>> a = np.arange(12) >>> a array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10...,其中reshape操作是副本,操作之后,原始数组形状并没有改变,resize操作是视图, 操作之后原始数组形状发生了变化。...数组转置 数组转置是最高频操作,在numpy中,有以下几种实现方式 >>> a array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9,

2.1K10
领券