菜鸟笔记-Python函数-linspace

linspace 是 NumPy 库中的一个函数,用于生成具有指定数量的等间距样本的数组。它的名字来源于“linear space”(线性空间),因为它在指定的范围内均匀地生成数值。

linspace 函数的基本语法如下:

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)

参数说明:

  • start:序列的起始值。
  • stop:序列的结束值。如果 endpoint 为 True,该值会包含在生成的数组中;如果为 False,则不包含。
  • num:要生成的样本数,默认为 50。
  • endpoint:如果为 True,stop 是最后一个样本;否则,不包含 stop。默认为 True。[注意:step=(stop-start)/num]
  • retstep:如果为 True,返回 (samplesstep),其中 step 是样本之间的间隔。默认为 False。
  • dtype:输出数组的数据类型。如果没有给出,则从其他输入参数推断数据类型。
  • axis:在 0 的情况下,返回的数组是 1-D 的,否则返回的数组的形状是 (num,) + shape(start)

下面是一些使用 linspace 的示例:

1基本用法

import numpy as np  
  
# 生成从 0 到 10 的 5 个等间距的数  
arr = np.linspace(0, 10, 5)  
print(arr)

输出结果: 

[ 0.   2.5  5.   7.5 10. ]

2不包括结束值 

# 生成从 0 到 10 的 5 个等间距的数,但不包括 10  
arr = np.linspace(0, 10, 5, endpoint=False)  
print(arr)

输出结果:

[0. 2. 4. 6. 8.]

3返回步长

# 生成从 0 到 10 的 5 个等间距的数,并返回步长  
samples, step = np.linspace(0, 10, 5, retstep=True)  
print(samples)  
print(step)

输出结果:

[ 0.   2.5  5.   7.5 10. ]
2.5

4在多维数组中使用 

# 假设我们有一个二维数组,我们想要在每个子数组上应用 linspace  
start = np.array([0, 1, 2])  
arr_2d = np.linspace(start, 10, 5, axis=0)  
print(arr_2d)

输出结果:

[[ 0.    1.    2.  ]
 [ 2.5   3.25  4.  ]
 [ 5.    5.5   6.  ]
 [ 7.5   7.75  8.  ]
 [10.   10.   10.  ]]

在这个例子中,linspace 在 start 数组和 10 之间生成了 5 个等间距的数,并将这些数沿着第一个轴(axis=0)排列成一个二维数组。 

5自定义数据类型

你可以通过dtype参数来指定输出数组的数据类型。

import numpy as np  
  
# 生成从 0 到 10 的 5 个等间距的数,数据类型为整数  
arr = np.linspace(0, 10, 5, dtype=int)  
print(arr)

输出结果:

[ 0  2  5  7 10]

请注意,当使用整数类型时,由于舍入,生成的数值可能不是完全等间距的。

6在非一维数组上使用

虽然linspace主要用于生成一维数组,但你可以通过与其他NumPy函数结合使用来在非一维数组上应用它。

import numpy as np  
  
# 创建一个二维数组的每一行都使用linspace  
rows = 3  
num_points = 4  
arr_2d = np.array([np.linspace(i, i+10, num_points) for i in range(rows)])  
print(arr_2d)

 输出结果:

[[ 0.          3.33333333  6.66666667 10.        ]
 [ 1.          4.33333333  7.66666667 11.        ]
 [ 2.          5.33333333  8.66666667 12.        ]]

在这个例子中,我们使用列表推导式来创建一个二维数组,其中每一行都是使用linspace函数生成的一维数组。

注意事项

  • endpoint参数为False时,生成的数组将不包含结束值。
  • retstep参数允许你获取生成数组时使用的步长。
  • dtype参数允许你指定输出数组的数据类型。
  • 虽然linspace通常用于生成一维数组,但它可以与其他NumPy函数结合使用来生成更复杂的数组结构。

2024年4月1日学习补充:step=(stop-start)/num]

例:

np.linspace(0,10,11,endpoint=False)

start=0 ; stop=10 ; num=11 step=(10-0)/11=0.90909090909090

array([0.        , 0.90909091, 1.81818182, 2.72727273, 3.63636364,
       4.54545455, 5.45454545, 6.36363636, 7.27272727, 8.18181818,
       9.09090909])

 

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Py小趴

整理不易,感谢金主!

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

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

打赏作者

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

抵扣说明:

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

余额充值