004:NumPy的应⽤-2
创始人
2024-05-26 01:13:28
0
数组的运算 使⽤ NumPy 最为⽅便的是当需要对数组元素进⾏运算时,不⽤编写循环代码遍历每个元素,所有的运算都会⾃动的⽮量化(使⽤⾼效的、提前编译的底层代码来对数据序列进⾏数学操作)。简单的说就是,NumPy 中的数学运算和数学函数会⾃动作⽤于数组中的每个成员。 数组跟标量的运算 代码:
array35 = np.arange(1, 10)
print(array35 + 10)
print(array35 * 10)
输出:
[11 12 13 14 15 16 17 18 19]
[10 20 30 40 50 60 70 80 90]
数组跟数组的运算 代码:
array36 = np.array([1, 1, 1, 2, 2, 2, 3, 3, 3])
print(array35 + array36)
print(array35 * array36)
print(array35 ** array36)
输出:
[ 2 3 4 6 7 8 10 11 12]
[ 1 2 3 8 10 12 21 24 27]
[ 1 2 3 16 25 36 343 512 729]
通⽤⼀元函数 通⽤函数是对 ndarray 中的数据执⾏元素级运算的函数。你可以将其看做普通函数(接收⼀个标量值作为参数,返回⼀个标量值)的⽮量化包装器,如下所示。 代码:
print(np.sqrt(array35))
print(np.log2(array35))
输出:
[1. 1.41421356 1.73205081 2. 2.23606798 2.449489742.64575131 2.82842712 3. ]
[0. 1. 1.5849625 2. 2.32192809 2.58496252.80735492 3. 3.169925 ]
1:通⽤⼀元函数 通⽤⼆元函数 代码:
array37 = np.array([[4, 5, 6], [7, 8, 9]])
array38 = np.array([[1, 2, 3], [3, 2, 1]])
print(array37 ** array38)
print(np.power(array37, array38))
输出:
[[ 4 25 216][343 64 9]]
[[ 4 25 216][343 64 9]]
2:通⽤⼆元函数

 

 

 

⼴播机制 上⾯的例⼦中,两个⼆元运算的数组形状是完全相同的,我们再来研究⼀下,两个形状不同的数组是否可以直接做⼆元运算或使⽤⼆元函数进⾏运算,请看下⾯的例⼦。 代码:
array39 = np.array([[0, 0, 0], [1, 1, 1], [2, 2, 2], [3, 3, 3]])
array40 = np.array([1, 2, 3])
array39 + array40
输出:
array([[1, 2, 3],[2, 3, 4],[3, 4, 5],[4, 5, 6]])
代码:
array41 = np.array([[1], [2], [3], [4]])
array39 + array41
输出:
array([[1, 1, 1],[3, 3, 3],[5, 5, 5],[7, 7, 7]])
通过上⾯的例⼦,我们发现形状不同的数组仍然有机会进⾏⼆元运算,但也绝对不是任意的数组都可以进⾏⼆元运算。简单的说,只有两个数组后缘维度相同或者其中⼀个数组后缘维度为1时,⼴播机制会被触发,⽽通过⼴播机制如果能够使两个数组的形状⼀致,才能进⾏⼆元运算。所谓后缘维度,指的是数组 shape 属性对应的元组中最后⼀个元素的值(从后往前数最后⼀个维度的值),例如,我们之前打开的图像对应的数组后缘维度为3,3⾏4列的⼆维数组后缘维度为4,⽽有5个元素的⼀维数组后缘维度为5。简单的说就是,后缘维度相同或者其中⼀个数组的后缘维度为1,就可以应⽤⼴播机制,沿着缺失或⼤⼩为1的维度重复数组元素;当两个数组的形状⼀致时,就满⾜了两个数组对应元素做运算的需求,如下图所示。

 

其他常⽤函数 除了上⾯讲到的函数外,NumPy 中还提供了很多⽤于处理数组的函数, ndarray 对象的很多⽅法也可以通过直接调⽤函数来实现,下表给出了⼀些常⽤的函数。 3NumPy其他常⽤函数

 

提示:上⾯的 resize 函数和 ndarray 对象的 resize ⽅法是有区别的, resize 函数在调整数组⼤⼩时会重复数组中的元素作为填补多出来的元素的值,⽽ ndarry 对象的 resize ⽅法是⽤0来填补多出来的元素。这些⼩细节不清楚暂时也不要紧,但是如果⽤到对应的功能了就要引起注意。 代码:

 

array42 = np.array([[1, 1, 1], [2, 2, 2], [3, 3, 3]])
array43 = np.array([[4, 4, 4], [5, 5, 5], [6, 6, 6]])
np.hstack((array42, array43))
输出:
array([[1, 1, 1, 4, 4, 4],[2, 2, 2, 5, 5, 5],[3, 3, 3, 6, 6, 6]])

 

 

 

 

 

 

 

 

 

相关内容

热门资讯

九毛九(09922.HK)盈警... 格隆汇3月10日丨九毛九(09922.HK)公告,公司预期(i)于2024财政年度将录得收入约人民币...
专访丨美保护主义拖累世界经济前... 转自:新华网新华社萨拉热窝3月10日电 专访|美保护主义拖累世界经济前景——访波黑学者弗拉德·西莫维...
富临精工:3月10日召开董事会... 每经AI快讯,富临精工(SZ 300432,收盘价:22.88元)3月10日晚间发布公告称,公司第五...
《食品安全事故应急演练要求》国... 中国青年报客户端讯(中青报·中青网记者 魏婉)近日,市场监管总局(国家标准委)批准发布《食品安全事故...
富临精工(300432.SZ)... 富临精工(300432.SZ)公告,公司同意公司控股子公司江西升华新材料有限公司(简称“江西升华”)...
强美元逻辑遇挑战!人民币汇率稳... 过去一周,主要受美元指数大幅下跌影响,非美货币普遍升值,人民币也随之走高。全国“两会”政府工作报告中...
香港中电控股司马志:政策助力中... 中青报·中青网记者 赵安琪“清晰的政策框架对企业的脱碳转型至关重要。”香港中电控股有限公司(中电控股...
安徽合力:拟以约3.2亿元与泰... 上证报中国证券网讯安徽合力公告,根据公司战略规划,为加快推进公司全球化战略布局,逐步构建海外生产供应...
有功夫,来郑州!武林风青少年“... 有功夫、来郑州。5月1日~5月3日,武林风青少年海选赛将在河南工程学院(龙湖校区)举办,面向全国招募...
ST熊猫:3月10日召开董事会... 每经AI快讯,ST熊猫(SH 600599,收盘价:10.47元)3月10日晚间发布公告称,公司第八...
资本市场向“新”再出发!深交所...   一年前的全国两会,新质生产力火出了圈。一年过去,新质生产力热潮持续涌动。助力传统产业“老树发新芽...
刘强东深入业务一线,京东交出2... 京东集团在2024年四季度总营收重回双位数增长。3月6日,京东集团(Nasdaq:JD,09618....
南京栖霞龙潭村联合城管部门开展... 转自:扬子晚报扬子晚报网3月10日讯(通讯员 倪玲 朱艳梅 记者 张可)近日,南京栖霞区龙潭街道龙潭...
郑州:金水河岸赏新柳 3月10日,金水河畔,微风轻拂,春风不仅吹开了繁花,也唤醒了新柳,嫩绿的新芽如繁星般点缀在细长的柳枝...
多模态智能体加快发展:中国信通... 转自:财联社《科创板日报》3月10日讯 为进一步加速智能体赋能产业应用,推动多模态智能体高质量发展,...
ETF新闻观察 | 4只ETF...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! 全国人大代表、深交所...
冠豪高新:2024年净利润同比... 上证报中国证券网讯冠豪高新披露年报。公司2024年实现营业收入75.88亿元,同比增长2.5%;净利...
中国女游客在斯里兰卡火车上探身... 【#中国女游客在斯里兰卡火车上探身坠落# 伤势严重】#导游回应女游客斯里兰卡火车上坠落#据斯里兰卡当...
伊朗否认介入叙利亚西部冲突 伊朗外交部10日否认有关伊朗介入叙利亚西部局势的媒体报道,称这种说法“荒唐至极”,“百分之百具有误导...
泰国 SEC 承认 USDT ... 吴说获悉,据 Tether 官方消息,泰国证券交易委员会(SEC)已正式批准 USD₮ 为合规加密货...