numpy基本操作,列举numpy中常用的5个方法

  numpy基本操作,列举numpy中常用的5个方法

  我为了Numpy的11种高级操作熬夜了,每一种都有参数解释和小例子帮助解释。文章中的示例代码解释得很详细,有兴趣的朋友可以和边肖一起学习。

  00-1010 1.数组2上的迭代。数组形状修改函数1。恩达雷。重塑2。恩达雷。三号公寓。恩达雷。平3。数组翻转操作函数1。numpy。转座2。numpy。恩达雷。t3。numpy。交换4。numpy。罗拉西S4。数组修改维度函数1 . numpy . broadcast _ to2 . numpy . expand _ dims 3 . numpy . squeeze 5 .数组连接操作1 .numpy . stack 2 . numpy . hstack 3 . numpy . vsack 4 . numpy . concatenate 6 .数组拆分操作1 .numpy。split 2 . numpy . HSP lit 3 . numpy . vs plit 7 . array元素操作1 . numpy . resize 2 . numpy . append 3 . numpy . insert 4 . numpy . delete 5 . numpy . unique 8 . numpy-string函数9 .NumPy-算术函数1。NumPy-三角2。NumPy-舍入函数3。数字算术运算4。统计函数10。分类、搜索和计数功能。IO文件操作

  

目录

 

  NumPy包含一个迭代器对象numpy.nditer,它是一个有效的多维迭代器对象,可用于对数组进行迭代。使用Python的标准迭代器接口可以访问数组的每个元素。

  importnumpyasnp

  a=np.arange(0,60,5)

  a=a . shape(3,4)

  打印(一份)

  forxinp . nditer(a):

  打印(x)

  输出结果:

  [[ 0 5 10 15]

  [20 25 30 35]

  [40 45 50 55]]

  0

  五

  10

  15

  20

  25

  30

  35

  40

  45

  50

  55

  如果广播两个数组,nditer复合对象可以同时迭代它们。假设几个组A的维数为3X4,有另一个数组B的维数为1X4,那么使用下面的迭代器类型(数组B广播到A的大小)。

  importnumpyasnp

  a=np.arange(0,60,5)

  a=a . shape(3,4)

  打印(一份)

  b=np.array([1,2,3,4],dtype=int)

  打印(b)

  forx,yinnp.nditer([a,b]):

  打印(x,y)

  输出结果:

  [[ 0 5 10 15]

  [20 25 30 35]

  铌

  sp;[40 45 50 55]]
[1 2 3 4]
0 1
5 2
10 3
15 4
20 1
25 2
30 3
35 4
40 1
45 2
50 3
55 4

  

  

 

  

2.数组形状修改函数

 

  

 

  

1.ndarray.reshape

 

  函数在不改变数据的条件下修改形状,参数如下:

  ndarray.reshape(arr, newshape, order)

  

import numpy as np

 

  输出结果:

  

[0 1 2 3 4 5 6 7]
[[0 1]
[2 3]
[4 5]
[6 7]]

 

  

 

  

 

  

2.ndarray.flat

 

  函数返回数组上的一维迭代器,行为类似 Python 内建的迭代器。

  

import numpy as np

 

  输出结果:

  

[[ 0 2 4 6]
[ 8 10 12 14]]
[0, 2, 4, 6, 8, 10, 12, 14]

 

  

 

  

 

  

3.ndarray.flatten

 

  函数返回折叠为一维的数组副本,函数接受下列参数:

  ndarray.flatten(order)

  其中:

  order:‘C’ — 按行,‘F’ — 按列,‘A’ — 原顺序,‘k’ —元素在内存中的出现顺序。

  

import numpy as np

 

  输出结果:

  

[[0 1 2 3]
[4 5 6 7]]
[0 1 2 3 4 5 6 7]
[0 4 1 5 2 6 3 7]

 

  

 

  

 

  

3.数组翻转操作函数

 

  

 

  

1.numpy.transpose

 

  函数翻转给定数组的维度。如果可能的话它会返回一个视图。函数接受下列参数:

  numpy.transpose(arr, axes)

  其中:

  arr:要转置的数组

  axes:整数的列表,对应维度,通常所有维度都会翻转。

  

import numpy as np

 

  输出结果:

  

[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
[[[ 0 12]
[ 4 16]
[ 8 20]]
[[ 1 13]
[ 5 17]
[ 9 21]]
[[ 2 14]
[ 6 18]
[10 22]]
[[ 3 15]
[ 7 19]
[11 23]]]
(4, 3, 2)

 

  

 

  

b = np.array(np.transpose(a, (1, 0, 2)))

 

  输出结果:

  

[[[ 0 1 2 3]
[12 13 14 15]]
[[ 4 5 6 7]
[16 17 18 19]]
[[ 8 9 10 11]
[20 21 22 23]]]
(3, 2, 4)

 

  

 

  

 

  

2. numpy.ndarray.T

 

  该函数属于ndarray类,行为类似于numpy.transpose.

  

import numpy as np

 

  输出结果:

  

[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[ 0 4 8]
[ 1 5 9]
[ 2 6 10]
[ 3 7 11]]

 

  

 

  

 

  

3.numpy.swapaxes

 

  函数交换数组的两个轴。这个函数接受下列参数:

  numpy.swapaxes(arr, axis1, axis2)

  其中:

  arr:要交换其轴的输入数组

  axis1:对应第一个轴的整数

  axis2:对应第二个轴的整数

  

import numpy as np

 

  输出结果:

  

[[[0 1]
[2 3]]
[[4 5]
[6 7]]]
[[[0 4]
[2 6]]
[[1 5]
[3 7]]]

 

  

 

  

 

  

4.numpy.rollaxis

 

  numpy.rollaxis()函数向后滚动特定的轴,直到一个特定位置。这个函数接受三个参数:

  numpy.rollaxis(arr, axis, start)

  其中:

  arr:输入数组

  axis:要向后滚动的轴,其它轴的相对位置不会改变

  start:默认为零,表示完整的滚动。会滚动到特定位置。

  

import numpy as np

 

  输出结果:

  

[[[0 1]
[2 3]]
[[4 5]
[6 7]]]
[[[0 2]
[4 6]]
[[1 3]
[5 7]]]
[[[0 2]
[1 3]]
[[4 6]
[5 7]]]

 

  

 

  

 

  

4.数组修改维度函数

 

  

 

  

1.numpy.broadcast_to

 

  函数将数组广播到新形状。它在原始数组上返回只 读视图。它通常不连续。如果新形状不符合 NumPy 的广播规则,该函数可能会抛出ValueError。该函数接受以下参数:

  numpy.broadcast_to(array, shape, subok)

  

import numpy as np

 

  输出结果:

  

[[0 1 2 3]]
[[0 1 2 3]
[0 1 2 3]
[0 1 2 3]
[0 1 2 3]]

 

  

 

  

 

  

2.numpy.expand_dims

 

  函数通过在指定位置插入新的轴来扩展数组形状。该函数需要两个参数:

  numpy.expand_dims(arr, axis)

  其中:

  arr:输入数组

  axis:新轴插入的位置

  

import numpy as np

 

  输出结果:

  

[[1 2]
[3 4]]
[[[1 2]
[3 4]]]
(2, 2) (1, 2, 2)
[[[1 2]]
[[3 4]]]
2 3
(2, 2) (2, 1, 2)

 

  

 

  

 

  

3.numpy.squeeze

 

  函数从给定数组的形状中删除一维条目。此函数需要两 个参数。

  numpy.squeeze(arr, axis)

  其中:

  arr:输入数组

  axis:整数或整数元组,用于选择形状中单一维度条目的子集

  

import numpy as np

 

  输出结果:

  

[[[0 1 2]
[3 4 5]
[6 7 8]]]
[[0 1 2]
[3 4 5]
[6 7 8]]
(1, 3, 3) (3, 3)

 

  

 

  

 

  

5.数组的连接操作

 

  NumPy中数组的连接函数主要有如下四个:

  

  • concatenate沿着现存的轴连接数据序列

  • stack沿着新轴连接数组序列

  • hstack水平堆叠序列中的数组(列方向)

  • vstack竖直堆叠序列中的数组(行方向)

 

  

 

  

1.numpy.stack

 

  函数沿新轴连接数组序列,需要提供以下参数:

  numpy.stack(arrays, axis)

  其中:

  

  • arrays:相同形状的数组序列

  • axis:返回数组中的轴,输入数组沿着它来堆叠

 

  

import numpy as np

 

  输出结果:

  

[[1 2]
[3 4]]
[[5 6]
[7 8]]
[[[1 2]
[3 4]]
[[5 6]
[7 8]]]
[[[1 2]
[5 6]]
[[3 4]
[7 8]]]

 

  

 

  

 

  

2.numpy.hstack

 

  是numpy.stack()函数的变体,通过堆叠来生成水平的单个数组。

  

import numpy as np

 

  输出结果:

  

[[1 2]
[3 4]]
[[5 6]
[7 8]]
水平堆叠:
[[1 2 5 6]
[3 4 7 8]]

 

  

 

  

 

  

3.numpy.vstack

 

  是numpy.stack()函数的变体,通过堆叠来生成竖直的单个数组。

  

import numpy as np

 

  输出结果:

  

[[1 2]
[3 4]]
[[5 6]
[7 8]]
竖直堆叠:
[[1 2]
[3 4]
[5 6]
[7 8]]

 

  

 

  

 

  

4.numpy.concatenate

 

  函数用于沿指定轴连接相同形状的两个或多个数组。该函数接受以下参数。

  numpy.concatenate((a1, a2, …), axis)

  其中:

  

  • a1, a2, ...:相同类型的数组序列

  • axis:沿着它连接数组的轴,默认为 0

 

  

import numpy as np

 

  输出结果:

  

[[1 2]
[3 4]]
[[5 6]
[7 8]]
[[1 2]
[3 4]
[5 6]
[7 8]]
[[1 2 5 6]
[3 4 7 8]]

 

  

 

  

 

  

6.数组的分割操作

 

  NumPy中数组的数组分割函数主要如下:

  

  • split将一个数组分割为多个子数组

  • hsplit将一个数组水平分割为多个子数组(按列)

  • vsplit将一个数组竖直分割为多个子数组(按行)

 

  

 

  

1.numpy.split

 

  该函数沿特定的轴将数组分割为子数组。函数接受三个参数:

  numpy.split(ary, indices_or_sections, axis)

  其中:

  

  • ary:被分割的输入数组

  • indices_or_sections:可以是整数,表明要从输入数组创建的,等大小的子数组的数量。如果此参数是一维数组,则其元素表明要创建新子数组的点。

  • axis:默认为 0

 

  

import numpy as np

 

  输出结果:

  

[0 1 2 3 4 5 6 7 8]
将数组分为三个大小相等的子数组:
[array([0, 1, 2]),
array([3, 4, 5]),
array([6, 7, 8])]
将数组在一维数组中表明的位置分割:
[array([0, 1, 2, 3]),
array([4, 5, 6]),
array([7, 8])]

 

  

 

  

 

  

2.numpy.hsplit

 

  split()函数的特例,其中轴为 1 表示水平分割。

  

import numpy as np

 

  输出结果:

  

[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
水平分割:
[array([[ 0, 1],
[ 4, 5],
[ 8, 9],
[12, 13]]),
array([[ 2, 3],
[ 6, 7],
[10, 11],
[14, 15]])]

 

  

 

  

 

  

3.numpy.vsplit

 

  split()函数的特例,其中轴为 0 表示竖直分割,无论输入数组的维度是什么。

  

import numpy as np

 

  输出结果:

  

[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
竖直分割:
[array([[0, 1, 2, 3],
[4, 5, 6, 7]]),
array([[ 8, 9, 10, 11],
[12, 13, 14, 15]])]

 

  

 

  

 

  

7.数组元素操作

 

  NumPy中数组操作函数主要如下:

  

  • resize返回指定形状的新数组

  • append将值添加到数组末尾

  • insert沿指定轴将值插入到指定下标之前

  • delete返回删掉某个轴的子数组的新数组

  • unique寻找数组内的唯一元素

 

  

 

  

1.numpy.resize

 

  函数返回指定大小的新数组。如果新大小大于原始大小,则包含原始数组中的元素的重复副本。如果小于则去掉原始数组的部分数据。该函数接受以下参数:

  numpy.resize(arr, shape)

  其中:

  

  • arr:要修改大小的输入数组

  • shape:返回数组的新形状

 

  

import numpy as np

 

  输出结果:

  

[[1 2 3]
[4 5 6]]
(2, 3)
[[1 2]
[3 4]
[5 6]]
(3, 2)
修改第二个数组的大小:
[[1 2 3]
[4 5 6]
[1 2 3]]
修改第三个数组的大小:
[[1 2]
[3 4]]

 

  

 

  

 

  

2.numpy.append

 

  函数在输入数组的末尾添加值。附加操作不是原地的,而是分配新的数组。此外,输入数组的维度必须匹配否则将生成ValueError。函数接受下列函数:

  numpy.append(arr, values, axis)

  其中:

  

  • arr:输入数组

  • values:要向arr添加的值,比如和arr形状相同(除了要添加的轴)

  • axis:沿着它完成操作的轴。如果没有提供,两个参数都会被展开。

 

  

import numpy as np

 

  输出结果:

  

[[1 2 3]
[4 5 6]]
[[1 2 3]
[4 5 6]
[7 8 9]]
[[1 2 3 5 5 5]
[4 5 6 7 8 9]]

 

  

 

  

 

  

3.numpy.insert

 

  函数在给定索引之前,沿给定轴在输入数组中插入值。如果值的类型转换为要插入,则它与输入数组不同。插入没有原地的,函数会返回一个新数组。此外,如果未提供轴,则输入数组会被展开。

  insert()函数接受以下参数:

  numpy.insert(arr, obj, values, axis)

  其中:

  

  • arr:输入数组

  • obj:在其之前插入值的索引

  • values:要插入的值

  • axis:沿着它插入的轴

 

  

import numpy as np

 

  输出结果:

  

[[1 2]
[3 4]
[5 6]]
[ 1 2 3 11 12 4 5 6]
[[ 1 2]
[11 11]
[ 3 4]
[ 5 6]]
[[ 1 11 2]
[ 3 11 4]
[ 5 11 6]]

 

  

 

  

 

  

4.numpy.delete

 

  函数返回从输入数组中删除指定子数组的新数组。与insert()函数的情况一样,如果未提供轴参数,则输入数组将展开。该函 数接受以下参数:

  Numpy.delete(arr, obj, axis)

  其中:

  

  • arr:输入数组

  • obj:可以被切片,整数或者整数数组,表明要从输入数组删除的子数组

  • axis:沿着它删除给定子数组的轴

 

  

import numpy as np

 

  输出结果:

  

[[1 2]
[3 4]
[5 6]]
[1 2 3 4 5]
[[1]
[3]
[5]]

 

  

 

  

 

  

5.numpy.unique

 

  函数返回输入数组中的去重元素数组。该函数能够返回一个元组,包含去重数组和相关索引的数组。索引的性质取决于函数调用中返回参数的类型。

  numpy.unique(arr, return_index, return_inverse, return_counts)

  其中:

  •arr:输入数组,如果不是一维数组则会展开

  •return_index:如果为true,返回输入数组中的元素下标

  •return_inverse:如果为true,返回去重数组的下标,它可以用于重构输入数组

  •return_counts:如果为true,返回去重数组中的元素在原数组中的出现次数

  

import numpy as np

 

  输出结果:

  

[2 5 6 7 8 9][2 5 6 7 8 9]
[1 0 2 4 7 9][2 5 6 7 8 9]
[1 0 2 0 3 1 2 4 0 5][2 5 6 7 8 9]
[3 2 2 1 1 1]

 

  

 

  

 

  

8.NumPy - 字符串函数

 

  以下函数用于对dtype为numpy.string_或numpy.unicode_的数组执行向量 化字符串操作。它们基于 Python 内置库中的标准字符串函数。字符数组类(numpy.char)中定义

  

 

  

import numpy as np

 

  输出结果:

  

['hello xyz']
['hello abc' 'hi xyz']
Hello Hello Hello
*******hello********
Hello world
Hello How Are You?
['hello' 'world']
hello
HELLO
['HELLO' 'WORLD']
['hello', 'how', 'are', 'you?']
['YiibaiPoint', 'Hyderabad', 'Telangana']
['hello', 'how are you?']
['hello', 'how are you?']
shok aror
['ror' 'dmin' 'jav']
d:m:y
['d:m:y' 'y-m-d']
He was a good boy
b'x88x85x93x93x96'
hello

 

  

 

  

 

  

9.NumPy - 算数函数

 

  NumPy 包含大量的各种数学运算功能。NumPy 提供标准的三角函数,算术运算的函数,复数处理函数等。

  

  • 三角函数

  • 舍入函数

  • 算数函数

 

  

 

  

1. NumPy -三角函数

 

  NumPy 拥有标准的三角函数,它为弧度制单位的给定角度返回三角函 数比值。arcsin,arccos,和arctan函数返回给定角度的sin,cos和tan的反三角函数。这些函数的结果可以通过numpy.degrees()函数通过将弧度制 转换为角度制来验证。

  

import numpy as np

 

  输出结果:

  

[ 0. 0.5 0.70710678 0.8660254 1. ]
[ 1.00000000e+00 8.66025404e-01 7.07106781e-01 5.00000000e-01
6.12323400e-17]
[ 0.00000000e+00 5.77350269e-01 1.00000000e+00 1.73205081e+00
1.63312394e+16]

 

  

 

  

 

  

2.NumPy -舍入函数

 

  numpy.around()这个函数返回四舍五入到所需精度的值

  

  • numpy.around(a,decimals) – a 输入数组

  • decimals 要舍入的小数位数。默认值为0。如果为负,整数将四舍五入到小数点左侧的位置

 

  numpy.floor()函数返回不大于输入参数的最大整数。

  numpy.ceil()函数返回输入值的上限,大于输入参数的最小整数

  

import numpy as np

 

  输出结果:

  

[ 1. 6. 123. 1. 26.]
[ 1. 5.6 123. 0.6 25.5]
[ 1. 5. 123. 0. 25.]
[ 1. 6. 123. 1. 26.]

 

  

 

  

 

  

3.NumPy - 算数运算

 

  用于执行算术运算(如add(),subtract(),multiply()和divide())的输入数组必须具有相同的形状或符合数组广播规则。

  

  • numpy.reciprocal()函数返回参数逐元素的倒数。

  • numpy.power()函数将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂。

  • numpy.mod()函数返回输入数组中相应元素的除法余数

 

  

import numpy as np

 

  输出结果:

  

[ 4. 0.5 1. 5. 0.01]
[ 6.25000000e-02 4.00000000e+00 1.00000000e+00
4.00000000e-02. 1.00000000e+04]
[1 0 2]

 

  

 

  

 

  

4.NumPy - 统计函数

 

  NumPy 有很多有用的统计函数,用于从数组中给定的元素中查找最小,最大,百分标准差和方差等。

  numpy.amin() , numpy.amax()从给定数组中的元素沿指定轴返回最小值和最大值。

  numpy.ptp()函数返回沿轴的值的范围(最大值 - 最小值)。

  numpy.percentile()表示小于这个值得观察值占某个百分比

  numpy.percentile(a, q, axis)

  

  • a 输入数组;

  • q 要计算的百分位数,在 0 ~ 100 之间;

  • 郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: