NumPy教程-NumPy Ndarray
NumPy教程-NumPy Ndarray
gh_1d7504e4dee1
回复:python,领取Python面试题。分享Python教程,Python架构师教程,Python爬虫,Python编程视频,Python脚本,Pycharm教程,Python微服务架构,Python分布式架构,Pycharm注册码。
Ndarray是NumPy中定义的n维数组对象,它存储了相似类型的元素集合。换句话说,我们可以将ndarray定义为数据类型(dtype)对象的集合。
可以使用基于0的索引来访问ndarray对象。数组对象的每个元素在内存中具有相同的大小。
创建ndarray对象
可以使用numpy模块的array例程来创建ndarray对象。为此,我们需要导入numpy。
>>>
import
numpy
as
np
>>>
a = np.array
我们还可以将一个集合对象传递到array例程中,以创建等效的n维数组。语法如下。
>>>
np.array(object, dtype=
None
, copy=
True
, order=
None
, subok=
False
, ndmin=
0
)
| 序号 | 参数 | 描述 |
|---|---|---|
| 1 | object | 它表示集合对象。可以是列表、元组、字典、集合等。 |
| 2 | dtype | 通过将此选项更改为指定的类型,我们可以更改数组元素的数据类型。默认为None。 |
| 3 | copy | 这是可选的。默认情况下,它为true,表示对象已被复制。 |
| 4 | order | 此选项可以分配3个可能的值。它可以是C(列顺序)、R(行顺序)或A(任意)。 |
| 5 | subok | 返回的数组默认将是基类数组。通过将此选项设置为true,我们可以更改为通过设置此选项为true 使子类通过。 |
| 6 | ndmin | 它表示结果数组的最小维数。 |
>>
> a = np.array([
1
,
2
,
3
])
要创建多维数组对象,请使用以下语法。
>>
> a = np.array([[
1
,
2
,
3
], [
4
,
5
,
6
]])
要更改数组元素的数据类型,请在集合后面提到数据类型的名称。
>>> a = np.
array
([
1
,
3
,
5
,
7
],
complex
)
资源分享
查找数组的维度
可以使用ndim函数查找数组的维度。
>>>
import
numpy
as
np
>>>
arr = np.array([[
1
,
2
,
3
,
4
], [
4
,
5
,
6
,
7
], [
9
,
10
,
11
,
23
]])
>>>
print(arr.ndim)
查找每个数组元素的大小
使用itemsize函数可以获取每个数组项的大小。它返回每个数组元素占用的字节数。
考虑以下示例。
示例
# 查找数组中每个项的大小
import numpy
as
np
a = np.
array
([[
1
,
2
,
3
]])
print
(
"每个项包含"
,a.itemsize,
"字节"
)
每个项包含 8 字节。
查找每个数组项的数据类型
要检查每个数组项的数据类型,可以使用dtype函数。考虑以下示例以检查数组项的数据类型。
示例
# 查找每个数组项的数据类型
import numpy
as
np
a = np.
array
([[
1
,
2
,
3
]])
print
(
"每个项的类型为"
,a.dtype)
goCopy
code
每个项的类型为 int64
查找数组的形状和大小
要获取数组的形状和大小,可以使用与numpy数组相关联的size和shape函数。
考虑以下示例。
示例
import numpy
as
np
a = np.
array
([[
1
,
2
,
3
,
4
,
5
,
6
,
7
]])
print
(
"数组大小:"
, a.size)
print
(
"形状:"
, a.shape)
数组大小: 7
形状: (1, 7)
重塑数组对象
通过数组的形状,我们指的是多维数组的行数和列数。然而,numpy模块为我们提供了通过更改多维数组的行数和列数来重塑数组的方法。
与ndarray对象关联的reshape()函数用于重塑数组。它接受两个参数,表示数组的新形状的行和列。
让我们重塑以下图像中给定的数组。
示例
import numpy
as
np
a = np.
array
([[
1
,
2
],[
3
,
4
],[
5
,
6
]])
print
(
"打印原始数组.."
)
print
(a)
a = a.reshape(
2
,
3
)
print
(
"打印重塑后的数组.."
)
print
(a)
打印原始数组..
[
[1 2
]
[
3 4
]
[
5 6
]]
打印重塑后的数组..
[
[1 2 3
]
[
4 5 6
]]
数组切片
在NumPy数组中,切片是从数组中提取一定范围的元素的方法。数组中的切片与Python列表中的切片方式相同。
考虑以下示例来打印数组的特定元素。
示例
import numpy
as
np
a = np.
array
([[
1
,
2
],[
3
,
4
],[
5
,
6
]])
print
(a[
0
,
1
])
print
(a[
2
,
0
])
2
5
等分
linspace()函数返回给定区间上均匀间隔的值。以下示例返回在给定区间5-15上均匀分隔的10个值。
示例
import
numpy
as
np
a = np.linspace(
5
,
15
,
10
)
# 在给定区间5-15上打印10个均匀分隔的值
print(a)
[ 5. 6.11111111 7.22222222 8.33333333 9.44444444 10.55555556 11.666
66667 12.77777778 13.88888889 15. ]
查找数组元素的最大值、最小值和总和
NumPy提供了max()、min()和sum()函数,用于分别查找数组元素的最大值、最小值和总和。
考虑以下示例。
示例
import
numpy as np
a = np.array([
1
,
2
,
3
,
10
,
15
,
4
])
print
(
"数组:"
, a)
print
(
"最大元素:"
, a.
max
())
print
(
"最小元素:"
, a.
min
())
print
(
"元素总和:"
, a.sum())
输出:
数组: [ 1 2 3 10 15 4]
最大元素: 15
最小元素: 1
元素总和: 35
NumPy数组轴
NumPy多维数组由轴表示,其中axis-0表示列,axis-1表示行。我们可以指定轴来执行行级或列级计算,例如对行或列元素进行加法。
要计算每列的最大元素、每行的最小元素以及所有行元素的总和,请考虑以下示例。
示例
import
numpy as np
a = np.array([[
1
,
2
,
30
], [
10
,
15
,
4
]])
print
(
"数组:"
, a)
print
(
"列的最大元素:"
, a.
max
(axis=
0
))
print
(
"行的最小元素:"
, a.
min
(axis=
1
))
print
(
"所有行的总和:"
, a.sum(axis=
1
))
数组:
[[ 1 2 30]
[10 15 4]
]
列的最大元素:
[10 15 30]
行的最小元素:
[ 1 4]
所有行的总和:
[33 29]
标准差表示数组的每个元素与numpy数组的均值之间的差异程度。
考虑以下示例。
示例
import
numpy as np
a = np.
array
([[
1
,
2
,
30
], [
10
,
15
,
4
]])
print(np.
sqrt
(a))
print(np.
std
(a))
[[
1.
1.41421356
5.47722558
]
[
3.16227766
3.87298335
2.
]]
10.044346115546242
数组上的算术运算
numpy模块允许我们直接在多维数组上执行算术运算。
在下面的示例中,对两个多维数组a和b执行算术运算。
示例
import numpy
as
np
a = np.
array
([[
1
,
2
,
30
], [
10
,
15
,
4
]])
b = np.
array
([[
1
,
2
,
3
], [
12
,
19
,
29
]])
print
(
"数组a和b的和
"
, a + b)
print
(
"数组a和b的乘积
"
, a * b)
print
(
"数组a和b的除法
"
, a / b)
数组连接
numpy为我们提供了垂直堆叠和水平堆叠,允许我们在垂直或水平方向上连接两个多维数组。
考虑以下示例。
示例
import numpy
as
np
a = np.
array
([[
1
,
2
,
30
], [
10
,
15
,
4
]])
b = np.
array
([[
1
,
2
,
3
], [
12
,
19
,
29
]])
print
(
"垂直连接的数组
"
, np.vstack((a, b)))
print
(
"水平连接的数组
"
, np.hstack((a, b)))
垂直连接的数组
[
[ 1 2 30
]
[
10 15 4
]
[
1 2 3
]
[
12 19 29
]]
水平连接的数组
[
[ 1 2 30 1 2 3
]
[
10 15 4 12 19 29
]]
-
30个极简Python代码,拿走就能用!
-
NumPy教程-NumPy环境设置
-
进大厂2天,公司给我花了5w,网友:驴在感恩主人给了个好磨~
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
