从零开始学习NumPy创建数组

NumPy创建数组

1. 从Python列表创建一维数组

  1. 引入numpy,并且取名字为np
    import numpy as np
  2. 用 np.array 从 Python 列表创建数组
import numpy as np
a = np.array([1, 4, 2, 5, 3])
print("a数组为",a)

输出为

a数组为 [1 4 2 5 3]
  1. 不同于Python列表,NumPy要求数组必须为同一数据类型。如果类型不匹配,NumPy将会向上转换,将整型被转换为浮点型。如下列程序,b数组的第一个元素为浮点型
import numpy as np
# 用 np.array 从 Python 列表创建数组
a = np.array([1, 4, 2, 5, 3])
b = np.array([1.0, 4, 2, 5, 3])
print("a数组为", a)
print("b数组为", b)

输出为

a数组为 [1 4 2 5 3]
b数组为 [1. 4. 2. 5. 3.]

b数组元素自动转化为浮点型

  1. 可以用 dtype 关键字设置数组的数据类型
import numpy as np
# 用 np.array 从 Python 列表创建数组
a = np.array([1, 4, 2, 5, 3])
b = np.array([1.0, 4, 2, 5, 3])
# 明确设置数组的数据类型,可以用 dtype 关键字
c = np.array([1, 2, 3, 4], dtype="float32")
print("a数组为", a)
print("b数组为", b)
print("c数组为", c)

输出为:

a数组为 [1 4 2 5 3]
b数组为 [1. 4. 2. 5. 3.]
c数组为 [1. 2. 3. 4.]

可见c数组元素每一个都设置为浮点类型

  1. 使用它的 shape 关键字,它是由N个非负整数组成的tuple (元组),可设置每个维度的大小
import numpy as np
d = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]])
print(d.shape)

输出为3行3列的元组

(3, 3)

2. 从Python列表创建多维数组

用 np.array 从 Python 列表创建多维数组,如下创建一个3*3的数组

import numpy as np
a = np.array([1, 4, 2, 5, 3])
d = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]])
print("a数组为", a)
print("d数组为\n", d)

输出为:

a数组为 [1 4 2 5 3]
d数组为
 [[1 2 3]
 [4 5 6]
 [7 8 9]]

3. 从头创建数组

  1. 创建一个长度为5的数组,数组的值都是0,类型为整型
import numpy as np
a = np.zeros(5, dtype=int)
print(a)

输出为

[0 0 0 0 0]
  1. 创建一个2×3的浮点型数组,数组的值都是1
import numpy as np
b = np.ones((2, 3), dtype="int32")
print(b)

输出为

[[1 1 1]
 [1 1 1]]
  1. 创建一个2×3的浮点型数组,数组的值都是2.3
import numpy as np
full((2, 3), 2.3)
print(c)

输出为

[[2.3 2.3 2.3]
 [2.3 2.3 2.3]]
  1. 创建从0到20(不包括20),步长为2的数组
import numpy as np
d = np.arange(0, 20, 2)
print(d)

输出为

[ 0  2  4  6  8 10 12 14 16 18]
  1. 创建一个5个元素的数组,这5个数均匀地分配到0~20
import numpy as np
e = np.linspace(0, 20, 5)
print(e)

输出为

[ 0.  5. 10. 15. 20.]
  1. 创建一个3×3的、[0, 10)区间的随机整型数组
import numpy as np
f = np.random.randint(0, 10, (3, 3))
print(f)

输出为

[[1 8 9]
 [0 4 6]
 [1 0 8]]
  1. 创建一个3×3的单位矩阵
import numpy as np
g = np.eye(3)
print(g)

输出为

[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
  1. 创建4个整数组成的未初始化的数组,数组的值是内存空间中的任意值
import numpy as np
h = np.empty(4)
print(h)

输出为

 [5. 10. 15. 20.]
<think>好的,我现在要解决用户的问题,即如何使用NumPy创建一维数组。首先,我需要回忆一下NumPy的基础知识,特别是数组创建的部分。根据用户提供的引用内容,特别是引用[1]和引用[3],里面提到了一维数组创建方法以及如何导入NumPy库。 首先,用户需要知道如何导入NumPy。根据引用[3],正确的导入方式是使用`import numpy as np`。这是所有NumPy操作的前提,所以在示例代码中必须包含这行。 接下来,用户需要具体的创建方法。根据引用[1],创建一维数组的常见方法包括使用`np.array()`函数从Python列表转换,以及使用`np.arange()`、`np.linspace()`和`np.zeros()`等函数生成。比如,`np.array([1,2,3])`会创建一个包含1、2、3的一维数组。此外,`np.arange(5)`会生成类似Python的`range`函数的数组,而`np.linspace(0, 1, 5)`会在0到1之间均匀生成5个数值。`np.zeros(3)`则创建一个全零的数组。 需要注意的是,用户可能需要这些方法的示例代码,所以在回答中应该包含具体的Python代码块,展示每种方法的使用方式。同时,根据用户的要求,代码需要用反引号包裹,并且正确格式化,比如使用三个反引号开始和结束代码块,并标明语言为python。 另外,用户的问题中提到了“示例 代码”,因此需要确保每个创建方法都有对应的代码示例。比如,使用列表转换、arange、linspace、zeros等方法都需要分别展示,并注释说明每个函数的作用和输出结果。 还需要检查是否有其他可能的创建方法,比如使用`np.ones()`或者`np.random.rand()`生成随机数组,但根据引用内容,用户提供的引用中没有提到这些,可能不需要额外扩展,除非必要。不过根据引用[2],提到了创建三维数组的方法,但用户的问题是一维,所以可能不需要涉及多维数组的内容。 此外,需要确保代码的正确性,比如在`np.array`中使用正确的括号和参数格式,避免语法错误。同时,注释需要清晰,说明每个步骤的作用,这样用户能够理解不同方法之间的区别和适用场景。 最后,用户可能需要知道转换现有列表为NumPy数组的方法,如引用[3]中提到的“将数组转换为NumPy数组”,因此在回答中可以提到使用`np.array()`函数将Python列表转换为NumPy数组,这也是创建一维数组的常见方式之一。 总结下来,回答的结构应该是先导入库,然后分别介绍几种创建方法,每种方法附带示例代码和注释,最后可能总结一下各种方法的适用情况。同时,根据用户的引用,确保引用标识正确添加,比如引用[1]和引用[3]在相关部分末尾添加。</think>### 如何用NumPy创建一维数组? #### 1. 导入NumPy库 首先需要导入NumPy库: ```python import numpy as np # 导入NumPy并简写为np[^3] ``` #### 2. 使用`np.array()`从列表创建 通过Python列表直接转换为一维数组: ```python arr1 = np.array([1, 2, 3, 4, 5]) # 输出:[1 2 3 4 5] ``` #### 3. 使用`np.arange()`生成等差数列 类似Python的`range`,但生成数组: ```python arr2 = np.arange(0, 10, 2) # 参数:起始值0,终止值10(不包含),步长2 → 输出:[0 2 4 6 8] ``` #### 4. 使用`np.linspace()`生成均匀分布数值 在指定区间内生成固定数量的等间隔数值: ```python arr3 = np.linspace(0, 1, 5) # 参数:起始0,终止1,数量5 → 输出:[0. 0.25 0.5 0.75 1.][^1] ``` #### 5. 使用`np.zeros()`创建全零数组 生成指定长度的零填充数组: ```python arr4 = np.zeros(3) # 输出:[0. 0. 0.] ``` #### 6. 其他方法(可选) - **`np.ones()`**:全1数组 ```python arr5 = np.ones(4) # 输出:[1. 1. 1. 1.] ``` - **`np.random.rand()`**:随机数组 ```python arr6 = np.random.rand(5) # 生成5个[0,1)的随机数 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值