numpy学习笔记

使用 NumPy 之前需要输入 import numpy as np

创建数组的不同函数

创建数组----np.array()

数组名=np.array()

  np.array() 是 NumPy 库中用于创建数组的函数。它可以将 Python 的列表、元组、或其他序列类型转换为 NumPy 数组,目的是利用 NumPy 提供的高效数组操作功能。

numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)
  • object: 要转换为数组的对象(如列表、元组、或其他数组)。
  • dtype: 数据类型,可以指定返回数组的数据类型。如不指定,NumPy 会自动推断数据类型。
  • copy: 默认为 True。如果原始数据是可修改的,是否要确保返回数组是其副本。
  • order: 读取和写入多维数据的顺序,可以是 'C'(C 顺序,行优先)或 'F'(Fortran 顺序,列优先),默认为 'K'。
  • subok: 默认为 False,表示若输入是子类,则返回基类的数组。如果为 True,将保持输入的子类。
  • ndmin: 指定返回数组的最小维度。

1. 从列表创建数组

import numpy as np

# 从 Python 列表创建 NumPy 数组
arr = np.array([1, 2, 3, 4])
print(arr)  # 输出: [1 2 3 4]

2.从嵌套列表创建二维数组

# 从嵌套列表创建二维数组
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(arr_2d)
# 输出:
# [[1 2 3]
#  [4 5 6]]

3. 指定数据类型

# 创建一个numpy数组并指定数据类型为浮点数
arr_float = np.array([1, 2, 3], dtype=float)
print(arr_float)  # 输出: [1. 2. 3.]

创建数组----np.zeros()

创建一个指定形状的数组,所有元素初始化为零。

import numpy as np

# 创建一个 2x3 的零数组
zeros_array = np.zeros((2, 3))
print(zeros_array)
# 输出:
# [[0. 0. 0.]

创建数组----np.ones()

创建一个指定形状的数组,所有元素初始化为一。

# 创建一个 2x3 的全一数组
ones_array = np.ones((2, 3))
print(ones_array)
# 输出:
# [[1. 1. 1.]
#  [1. 1. 1.]]

创建数组----np.arange()

生成一个包含指定范围内的等间隔的数字的数组。

# 创建一个从 0 到 9 的一维数组
arange_array = np.arange(10)
print(arange_array)  # 输出: [0 1 2 3 4 5 6 7 8 9]

# 指定步长
arange_step_array = np.arange(0, 10, 2)
print(arange_step_array)  # 输出: [0 2 4 6 8]

创建数组----np.eye() 

创建一个单位矩阵(对角线为 1,其余元素为 0)。

# 创建一个 3x3 的单位矩阵
eye_matrix = np.eye(3)
print(eye_matrix)
# 输出:
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]

创建数组----np.random.rand()

生成指定形状的随机数数组,数值服从均匀分布 [0, 1)。

# 创建一个 2x3 的随机数数组
random_array = np.random.rand(2, 3)
print(random_array)

range(len())

实则为两个内置函数的组合(类似于数学中的外函数和内函数)。range(len()) 不是一个独立的函数,而是 Python 中常用的组合用法,通常用来生成一个整数序列。

len()

len() 是一个内置函数,用于返回一个对象(如列表、元组、字符串等)的长度或元素个数。

my_list = [1, 2, 3, 4]
length = len(my_list)  # 返回 4
print(length)  # 输出: 4

range()

range() 是一个内置函数,用于生成一个整数序列。可以接受一个、两个或三个参数:

  • range(stop): 生成从 0 到 stop-1 的整数。
  • range(start, stop): 生成从 start 到 stop-1 的整数。
  • range(start, stop, step): 生成从 start 到 stop-1,步长为 step 的整数。
for i in range(5):
    print(i)  # 输出: 0 1 2 3 4

range(len()) 的用法

将这两个函数结合使用时,range(len(some_list)) 常用来生成一个索引序列,适用于迭代一个列表或其他可迭代对象的索引。

示例

假设你有一个列表,想通过索引遍历该列表的元素:

my_list = ['apple', 'banana', 'cherry']

for i in range(len(my_list)):
    print(i, my_list[i])

输出

0 apple
1 banana
2 cherry

数组名.shape

b=np.array([1,2,3],[4,5,6],dtype='float64')
Nrows,Ncols=b.shape  #列表名.shape
for j in range(Nrows):
    print(b[0,j])
#输出 1 2 3

        shape 属性告诉你数组的结构,包括每个维度的大小。对于一维数组,shape 返回一个包含一个元素的元组;对于二维数组,shape 返回一个包含两个元素的元组,分别代表行数和列数;对于三维数组,shape 返回一个包含三个元素的元组,分别代表深度、高度和宽度,依此类推。

一维数组

import numpy as np

# 创建一个一维数组
array_1d = np.array([1, 2, 3, 4, 5])
print(array_1d.shape)  # 输出: (5,)

二维数组

# 创建一个二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(array_2d.shape)  # 输出: (2, 3)  表示有 2 行 3 列

三维数组 

# 创建一个三维数组
array_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(array_3d.shape)  # 输出: (2, 2, 2)  表示有 2 个 2x2 的矩阵

matplotlib.pyplot

  matplotlib.pyplot 【记忆:plot是图标相关;lib是library的缩写“图书馆”,或者翻译成“库”】是 Matplotlib 库中的一个模块,通常用于绘制各种类型的图形。在数据可视化中,它提供大量的绘图功能,类似于 MATLAB 的绘图方式,用户可以使用简单的命令来创建复杂的图形。

        使用前需要导入matplotlib模块,可以通过以下方式导入

import matploblib.pyplot as plt

绘制折线图--plt.plot(x,y)

import numpy as np
import matplotlib.pyplot as plt

#创建数据
x = np.linspace(0,10,100)#生成从0到10的100个点
y = np.sin(x)

#绘制折线图
plt.plot(x,y)
plt.title('Sine wave')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.grid()#绘制折线图
plt.show()
在IDLE中的代码

结果显示

 

绘制散点图--plt.sactter(x,y)

import numpy as np
import matplotlib.pyplot as plt
#生成随机数据
x = np.random.rand(10)
y = np.random.rand(10)

#绘制散点图
plt.scatter(x,y)#生成散点图的函数格式
plt.title('Random Scatter Plot')
plt.xlabel('x-axis')
plt.ylabel('y-axis')
plt.grid()
plt.show()

绘制柱状图-plt.bar(x,y)

import numpy as np
import matplotlib.pyplot as plt

# 创建数据
categories = ['A', 'B', 'C', 'D']
values = [10, 15, 7, 10]

# 绘制柱状图
plt.bar(categories, values)#绘制柱状图函数指令
plt.title('Bar Chart')
plt.xlabel('Categories')
plt.ylabel('Values')
plt.show()

numpy.linspace()----np.linspace()

        是 NumPy 库中用于生成等间隔数值序列的函数。这个函数在数值计算和数据可视化时非常有用,特别是在需要生成一组具有相同间隔的数值时,例如绘图、采样点等。

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
  • start: 序列的起始值。
  • stop: 序列的结束值。
  • num: 生成的样本数量,默认是 50。
  • endpoint: 结束值是否包含在序列中,默认为 True。如果设为 False,则停止点不包含在内。
  • retstep: 如果为 True,则返回样本间距 (step),默认为 False。
  • dtype: 输出数组的数据类型。

 np.random.rand()

  np.random.rand() 是 NumPy 库中的一个函数,用于生成指定形状的随机数数组,这些随机数服从均匀分布,范围在 [0, 1) 之间

        生成任意维度的数组。这里以1,2,3维为例:

一维数组:代码及结果

import numpy as np
import matplotlib.pyplot as ply
array_1d = np.random.rand(5)
print(array_1d)

二维数组:代码及结果 

import numpy as np
import matplotlib.pyplot as ply
array_2d = np.random.rand(5,6)
print(array_2d)

三维数组:代码及结果

import numpy as np
import matplotlib.pyplot as ply
array_3d = np.random.rand(5,6,3)
print(array_3d)

plt.grid()

        是一个函数,用于在 Matplotlib 绘图中添加网格线。使用网格线可以帮助视图更好地对齐数据点,增强图表的可读性和视觉效果。        

        可以通过参数控制网格线的样式,比如线型、颜色和透明度等,例如

plt.grid(color='gray', linestyle='--', linewidth=0.5)

        比如:

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值