Numpy 理解ndarray对象的示例代码

1. 简介

NumPy是Python科学计算的基础库之一,它提供了高性能的多维数组对象ndarray,以及一系列工具,使我们能够使用Python编写高效的科学计算程序。本文将着重介绍NumPy中的ndarray对象。

2. 创建ndarray对象

NumPy中的ndarray对象是一个n维数组,它可以存储任意类型的元素,但数组中所有元素的类型必须相同。创建ndarray对象的方法有很多种,下面介绍几种常用的方式。

2.1 使用array函数创建ndarray对象

使用array函数可以将Python中的列表、元组等序列类型转换为ndarray对象。

import numpy as np

# 创建一个包含1到5的一维数组

a = np.array([1, 2, 3, 4, 5])

print(a)

# 输出:[1 2 3 4 5]

# 创建一个包含嵌套列表的二维数组

b = np.array([[1, 2], [3, 4], [5, 6]])

print(b)

# 输出:

# [[1 2]

# [3 4]

# [5 6]]

ndarray对象的类型可以用dtype属性获取,数组中元素的个数可以用shape属性获取。

2.2 使用arange函数创建ndarray对象

arange函数可以创建一个指定范围内的等间隔一维数组。它的用法与Python中的range函数类似。

import numpy as np

# 创建包含0到9的一维数组

a = np.arange(10)

print(a)

# 输出:[0 1 2 3 4 5 6 7 8 9]

2.3 使用linspace函数创建ndarray对象

linspace函数可以创建一个指定范围内的等间隔一维数组。

import numpy as np

# 在0到1之间创建包含5个元素的一维数组

a = np.linspace(0, 1, 5)

print(a)

# 输出:[0. 0.25 0.5 0.75 1. ]

3. ndarry对象的基本操作

ndarray对象与列表类似,但它支持更多的操作。下面介绍一些常用的操作方式。

3.1 基本索引和切片

与Python中的列表类似,ndarray对象也支持基本的索引和切片操作。

import numpy as np

a = np.array([1, 2, 3, 4, 5])

print(a[2])

# 输出:3

b = np.array([[1, 2], [3, 4], [5, 6]])

print(b[1, 0])

# 输出:3

# 切取二维数组的第一列

print(b[:, 0])

# 输出:[1 3 5]

3.2 形状操作

可以通过reshape方法改变ndarray对象的形状。

import numpy as np

a = np.array([1, 2, 3, 4, 5, 6])

b = a.reshape((2, 3))

print(b)

# 输出:

# [[1 2 3]

# [4 5 6]]

3.3 数组转置

使用transpose方法或者T属性可以得到ndarray对象的转置。

import numpy as np

a = np.array([[1, 2], [3, 4], [5, 6]])

b = a.transpose()

print(b)

# 输出:

# [[1 3 5]

# [2 4 6]]

c = a.T

print(c)

# 输出:

# [[1 3 5]

# [2 4 6]]

3.4 带条件的索引和切片

可以使用布尔数组作为ndarry对象的索引。

import numpy as np

a = np.array([1, 2, 3, 4, 5, 6])

b = (a > 3)

print(b)

# 输出:[False False False True True True]

c = a[b]

print(c)

# 输出:[4 5 6]

3.5 通用函数ufunc

Numpy提供了很多常用的数学函数,这些函数都是通用的,它们可以同时操作ndarray对象中的所有元素。

import numpy as np

a = np.array([1, 2, 3, 4, 5, 6])

b = np.sin(a)

print(b)

# 输出:[ 0.84147098 0.90929743 0.14112001 -0.7568025 -0.95892427 -0.2794155 ]

4. Numpy随机数生成

Numpy还提供了很多用于生成随机数的函数,下面介绍其中的几个。

4.1 随机数生成器

使用random模块中的RandomState类可以创建一个随机数生成器。

import numpy as np

rs = np.random.RandomState(0)

print(rs.randn(3, 3))

# 输出:

# [[-1.0464472 0.37701517 0.07781789]

# [-0.86298662 -0.18795659 -0.23605446]

# [-0.18718385 -0.11880682 0.326148 ]]

4.2 均匀分布的随机数

使用random模块中的uniform函数可以生成一个均匀分布的随机数。

import numpy as np

a = np.random.uniform(-1, 1, (3, 3))

print(a)

# 输出:

# [[-0.69376646 0.36967709 -0.05893152]

# [-0.81837517 -0.21550222 0.48720567]

# [-0.12019719 -0.40833713 0.07987114]]

4.3 正态分布的随机数

使用random模块中的normal函数可以生成一个正态分布的随机数。

import numpy as np

a = np.random.normal(0, 1, (3, 3))

print(a)

# 输出:

# [[-0.99702683 0.30740228 -2.05979296]

# [-0.19085887 -0.12996859 -0.02030269]

# [-0.02766438 0.56769209 0.41497003]]

5. 总结

本文介绍了NumPy中的ndarray对象,包括创建方式、基本操作和随机数生成等方面。NumPy的高效运算能力和丰富的功能为科学计算提供了强有力的支持。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签