python已知数组如何快速生成新数组的方法

  介绍

本篇内容介绍了“python已知数组如何快速生成新数组的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

<强>需求描述

在利用numpy进行数据分析时,常有的一个需求的是:根据已知的数组生成新数组。这个问题又可以分为两类:

<李>

根据筛选条件生成子数组;

<李>

根据变换条件生成新数组(新数组形状与原数组相同)

下面简单总结。

<强>生成子数组

<强>情况1

已知数组,以及若干筛选条件气孔导度,要求从数组一个中生成一个子数组b。

解决办法:<代码> b=(电导率)。<代码>比如b=(a> 0), b=[(a>=1) | (a<=2), b=[(a>=1), (a<=3)]

实例:如下

#,实例1.1:已知数组,要求找出所有a> 0的元素,然后生成一个新数组。   时间=a  np.arange (5、5、1)   打印(& # 39;原数组:& # 39;,一个)   b =, (a> 0)   打印(& # 39;实例1结果:& # 39;(b)      #,实例1.2:已知数组,要求找出所有a>=1或a<=2的元素,然后生成一个新数组。   b =, ((a>=1), |, (a<(2)]   打印(& # 39;实例2结果:& # 39;(b)      #,实例1.3:已知数组,要求找出所有a>=1并且a<=3的元素,然后生成一个新数组。   b =, ((a>=1),,, (a<=3)]   打印(& # 39;实例3结果:& # 39;(b)

运行结果:

原数组:[5 4 3 2 1,0,1,2,3,4]
实例1结果:(1 2 3 4)
实例2结果:[5 4 3 2,1,2,3,4]
实例3结果:(1 2 3)

<强>情况2

已知数组一和数b组(形状相同),以及对数组一的筛选条件conds_a。要求从数b组中生成一个子数c组,其中的元素id,与满足筛选条件的数一的组元素id一一对应。

解决办法:

<代码> c=b [conds_a], 比如<代码> c=b [(a>=1),(a<=3)]

实例:如下

a =, np.arange (5、5、1)   时间=b  np.arange(-50年,50岁,10)   打印(& # 39;数组:& # 39;,一个)   打印(& # 39;数组b: & # 39; (b)      c =, b [(a>=1),,, (a<=3)]   打印(& # 39;新数组c: & # 39;,, c)

运行结果:

数组:[5 4 3 2 1,0,1,2,3,4]
数组b: [-50 -40 -30 -20 -10,,0,10,20,30,40]
新数组c: [10 20 30]

<强>变换成新数组

已知数组,以及若干变换条件气孔导度,要求生成一个新数b组(与原数组形状相同)。解决办法:

方法1:<代码> np。在((条件,(x, y)))
使用场景:当变换条件只有两个以下时,比如实例2.1。该方法等价于:如果其他条件x y

方法2:<代码> np。选择(condlist choicelist,默认=0)
使用场景:当变换条件有任意多个时,比如实例2.2。该方法等价于:

if  condlist [0]:   choicelist才能[0]   elif  condilist [1]:   choicelist才能[1]   …   其他:   违约才能

方法3:<代码> np。分段(x, condlist funclist * args, * *千瓦)

使用场景:同方法2,只不过变换条件较复杂,无法直接写出,要用函数来表示。
实例:如下

#,实例2.1:已知数组,要求对所有a<0的元素取绝对值,对其他元素设为0,然后生成一个新数组   时间=a  np.arange (5、5、1)   print ()   时间=b  np.where (a<0,, abs (a), 0)   打印(& # 39;实例2.1结果:& # 39;(b)      #,实例2.2:已知数组,要求对所有a<0的元素取绝对值,对一个=0的元素+ 100,对a> 0的元素平方,然后生成一个新数组   时间=b  np.select ([0, a 0],, (abs (a),, + 100,, * * 2))   打印(& # 39;实例2.2结果:& # 39;(b)

运行结果:

[5 4 3 2 1,0,1,2,3,4]
实例2.1结果:[5 4 3 2 1 0 0 0 0 0]
实例2.2结果:[5 4 3 2 1 100 1 4 916]

python已知数组如何快速生成新数组的方法