网站首页 > 精选教程 正文
Numpy 数组对象是一种多维的、同质的、可变的数据容器,它可以存储具有相同数据类型的元素,并支持各种数学和逻辑运算。Numpy 数组对象有以下几个重要的属性:
- shape:表示数组的形状,即每个维度的大小。例如,一个二维数组的 shape 可以是 (3, 4),表示有 3 行 4 列。
- dtype:表示数组的数据类型,即每个元素的类型。例如,一个整数数组的 dtype 可以是 int32,表示 32 位整数。
- ndim:表示数组的维度数,即有多少个轴。例如,一个二维数组的 ndim 是 2,一个一维数组的 ndim 是 。
- size:表示数组的元素总数,即所有维度的大小之积。例如,一个 shape 为 (3, 4) 的数组的 size 是 。
- itemsize:表示数组中每个元素所占的字节数。例如,一个 dtype 为 int32 的数组的 itemsize 是 。
- data:表示数组中实际存储数据的缓冲区,一般不直接访问,而是通过索引或切片来获取元素。
以下是一些创建和操作 Numpy 数组对象的例子:
# 导入 numpy 模块
import numpy as np
# 创建一个一维数组
a = np.array([1, 2, 3, 4])
print(a) # 输出 [1 2 3 4]
print(a.shape) # 输出 (4,)
print(a.dtype) # 输出 int32
print(a.ndim) # 输出 1
print(a.size) # 输出 4
print(a.itemsize) # 输出 4
# 创建一个二维数组
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b) # 输出 [[1 2 3] [4 5 6]]
print(b.shape) # 输出 (2, 3)
print(b.dtype) # 输出 int32
print(b.ndim) # 输出 2
print(b.size) # 输出 6
print(b.itemsize) # 输出 4
# 创建一个三维数组
c = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(c) # 输出 [[[1 2] [3 4]] [[5 6] [7 8]]]
print(c.shape) # 输出 (2, 2, 2)
print(c.dtype) # 输出 int32
print(c.ndim) # 输出 3
print(c.size) # 输出 8
print(c.itemsize) # 输出
# 创建一个指定形状和数据类型的空数组
d = np.empty((2, 3), dtype=float)
print(d) # 输出类似 [[0.00000000e+000 -1.49457995e-154 -1.49457995e-154] [0.00000000e+000 -1.49457995e-154 -1.49457995e-154]] 的随机值
# 创建一个指定形状和数据类型的全零数组
e = np.zeros((2, 3), dtype=int)
print(e) # 输出 [[0 0 0] [0 0 0]]
# 创建一个指定形状和数据类型的全一数组
f = np.ones((2, 3), dtype=bool)
print(f) # 输出 [[ True True True] [ True True True]]
# 创建一个指定范围和步长的等差序列数组
g = np.arange(0, 10, 2)
print(g) # 输出 [0,2,4,6,8]
# 创建一个指定范围和元素个数的等分序列数组
h = np.linspace(0,10,5)
print(h) # 输出 [0. ,2.5 ,5. ,7.5 ,10.]
# 创建一个指定范围和元素个数的等比序列数组
i = np.logspace(0,10,5)
print(i) # 输出 [1.e+00 ,3.16227766e+02 ,1.e+05 ,3.16227766e+07 ,1.e+10]
# 创建一个指定形状的随机数组
j = np.random.rand(2, 3)
print(j) # 输出类似 [[0.12345678 ,0.23456789 ,0.34567891] [0.45678912 ,0.56789123 ,0.67891234]] 的随机值
# 通过索引或切片获取或修改数组元素
k = np.array([[1, 2, 3], [4, 5, 6]])
print(k[0, 1]) # 输出 2
k[1, 2] = 7 # 修改元素
print(k) # 输出 [[1 2 3] [4 5 7]]
print(k[:, 1]) # 输出 [2 5]
print(k[0, :]) # 输出 [1 2 3]
print(k[0:2, 1:3]) # 输出 [[2 3] [5 7]]
# 使用布尔数组作为索引获取或修改数组元素
l = np.array([1, 2, 3, 4])
m = np.array([True, False, True, False])
print(l[m]) # 输出 [1 3]
l[m] = -1 # 修改元素
print(l) # 输出 [-1 ,2 ,-1 ,4]
# 使用花式索引获取或修改数组元素
n = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
o = np.array([0, 2])
p = np.array([1, 0])
print(n[o]) # 输出 [[1 ,2 ,3] [7 ,8 ,9]]
print(n[o,p]) # 输出 [2 ,7]
n[o,p] = -1 # 修改元素
print(n) # 输出 [[-1 ,2 ,3] [4 ,5 ,6] [7 ,-1 ,9]]
# 使用广播机制进行数组运算
q = np.array([1, 2, 3])
r = np.array([4, 5, 6])
s = q + r # 数组相加
print(s) # 输出 [5 ,7 ,9]
t = q * r # 数组相乘
print(t) # 输出 [4 ,10 ,18]
u = q ** r # 数组幂运算
print(u) # 输出 [ 1 ,32 ,729]
v = np.array([[1], [2], [3]])
w = v + q # 数组广播相加
print(w) # 输出 [[2 ,3 ,4] [3 ,4 ,5] [4 ,5 ,6]]
x = v * q # 数组广播相乘
print(x) # 输出 [[1 ,2 ,3] [2 ,4 ,6] [3 ,6 ,9]]
y = v ** q # 数组广播幂运算
print(y) # 输出 [[1 ,1 ,1 ] [2 ,4 ,8 ] [3 ,9 ,27]]
猜你喜欢
- 2024-11-16 面向JVM编译-类实例、数组的创建和使用
- 2024-11-16 来,一起聊聊Excel中的数组(excel数组公式有哪些)
- 2024-11-16 数组的维数及数组公式的讲解(数组维的大小)
- 2024-11-16 C语言中数组的类型和使用(c语言中数组的概念及作用)
- 2024-11-16 C# - 多维与交错数组 036(交错数组和多维数组有何区别?)
- 2024-11-16 Numpy第6练:如何操控数组的维度与形状?干货满满!
- 2024-11-16 NumPy之:多维数组中的线性代数(numpy 多维数组)
- 2024-11-16 S7-1200 数组数据类型(ARRAY)(s71200plc数据类型)
- 2024-11-16 JAVA中如何调用matlab并返回运算结果?
- 2024-11-16 Java基础03(java基础案例教程第二版)
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)