np.array多维数组的例子和练习题

例子

import numpy as np

示例 1:创建多维数组

# 创建一个2x3的二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(array_2d)

运行结果:
[[1 2 3]
[4 5 6]]

练习题:

  1. 创建一个3x4的二维数组,填充1到12的整数。
  2. 创建一个2x2x3的三维数组,填充1到12的整数。

示例 2:访问多维数组的元素

# 创建一个3x3的二维数组
array_2d = np.array([[11, 12, 13], [21, 22, 23], [31, 32, 33]])

# 访问第一行第二列的元素
element = array_2d[0, 1]
print(element)

# 访问最后一行
last_row = array_2d[-1]
print(last_row)

运行结果:
12
[31 32 33]

练习题:

  1. 访问上面创建的3x4数组的第二行第三列的元素。
  2. 访问上面创建的2x2x3数组的第二层第一列的所有元素。

示例 3:切片多维数组

# 创建一个3x3的二维数组
array_2d = np.array([[11, 12, 13], [21, 22, 23], [31, 32, 33]])

# 切片第一行
row_slice = array_2d[0, :]
print(row_slice)

# 切片所有行的第二列
col_slice = array_2d[:, 1]
print(col_slice)

运行结果:
[11 12 13]
[12 22 32]

练习题:

  1. 切片上面创建的3x4数组的所有行的第一列。
  2. 切片上面创建的2x2x3数组的第一层的所有元素。

示例 4:多维数组的运算

# 创建两个3x3的二维数组
array_1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array_2 = np.array([[9, 8, 7], [6, 5, 4], [3, 2, 1]])

# 数组相加
array_add = array_1 + array_2
print(array_add)

# 元素乘法
array_multiply = array_1 * array_2
print(array_multiply)

运行结果:
[[10 10 10]
[10 10 10]
[10 10 10]]

[[ 9 16 21]
[24 25 24]
[21 16 9]]

练习题:

  1. 创建两个大小相同的3x4数组,执行数组相加和元素乘法操作。
  2. 创建两个大小相同的2x2x3数组,执行数组相加操作。

示例 5:布尔索引

# 创建一个3x3的二维数组
array_2d = np.array([[11, 12, 13], [21, 22, 23], [31, 32, 33]])

# 选择大于20的元素
bool_index = array_2d > 20
print(bool_index)

# 使用布尔索引获取大于20的元素
greater_than_20 = array_2d[bool_index]
print(greater_than_20)

运行结果:
[[False False False]
[False False False]
[ True True True]]

[31 32 33]

练习题:

  1. 在上面创建的3x4数组中,使用布尔索引选择所有大于5且小于10的元素。
  2. 在上面创建的2x2x3数组中,选择所有第二层大于5的元素。

————-

习题答案

示例 1 练习题答案:

  1. 创建一个3x4的二维数组,填充1到12的整数。
array_3x4 = np.arange(1, 13).reshape(3, 4)
print(array_3x4)

运行结果:
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]

  1. 创建一个2x2x3的三维数组,填充1到12的整数。
array_2x2x3 = np.arange(1, 13).reshape(2, 2, 3)
print(array_2x2x3)

运行结果:
[[[ 1 2 3]
[ 4 5 6]]

[[ 7 8 9]
[10 11 12]]]

示例 2 练习题答案:

  1. 访问上面创建的3x4数组的第二行第三列的元素。
element = array_3x4[1, 2]
print(element)

运行结果:
7

  1. 访问上面创建的2x2x3数组的第二层第一列的所有元素。
second_layer_first_col = array_2x2x3[:, :, 0]
print(second_layer_first_col)

运行结果:
[[[ 1 4]
[ 7 10]]

[[ 2 5]
[ 8 11]]]

示例 3 练习题答案:

  1. 切片上面创建的3x4数组的所有行的第一列。
first_col = array_3x4[:, 0]
print(first_col)

运行结果:
[ 1 5 9]

  1. 切片上面创建的2x2x3数组的第一层的所有元素。
first_layer = array_2x2x3[0]
print(first_layer)

运行结果:
[[[ 1 2 3]
[ 4 5 6]]

[[ 7 8 9]
[10 11 12]]]

示例 4 练习题答案:

  1. 创建两个大小相同的3x4数组,执行数组相加和元素乘法操作。
array_1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
array_2 = np.array([[13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24]])

# 数组相加
array_add = array_1 + array_2
print("Array Addition:\n", array_add)

# 元素乘法
array_multiply = array_1 * array_2
print("Array Multiplication:\n", array_multiply)

运行结果:
Array Addition:
[[16 18 24 32]
[26 30 44 56]
[48 54 64 72]]

Array Multiplication:
[[ 13 28 45 64]
[ 85 108 133 160]
[189 220 253 288]]

  1. 创建两个大小相同的2x2x3数组,执行数组相加操作。
array_1 = np.ones((2, 2, 3))
array_2 = np.ones((2, 2, 3))

# 数组相加
array_add = array_1 + array_2
print(array_add)

运行结果:
[[[2. 2. 2.]
[2. 2. 2.]]

[[2. 2. 2.]
[2. 2. 2.]]]

示例 5 练习题答案:

  1. 在上面创建的3x4数组中,使用布尔索引选择所有大于5且小于10的元素。
bool_index = (array_3x4 > 5) & (array_3x4 < 10)
elements = array_3x4[bool_index]
print(elements)

运行结果:
[ 6 7 8 9]

  1. 在上面创建的2x2x3数组中,选择所有第二层大于5的元素。
bool_index = (array_2x2x3 > 5)
second_layer_elements = array_2x2x3[1, :, bool_index]
print(second_layer_elements)

运行结果:
[ 8 9 11]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZeroSnowy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值