第二章 ndarray的创建及属性

NumPy入门教程

第一章 NumPy 介绍
第二章 ndarray的创建及其属性
第三章 ndarray的基本操作
第四章 ndarray的索引、切片和遍历
第五章 ndarray的重塑、组合和拆分
第六章 用于ndarray的文件操作
第七章 ndarray的赋值、视图、拷贝和广播



前言

上一章我们介绍了 NumPy 的多维数组以及多维数组相对于列表的优势。本章介绍ndarray的创建及其属性。


一、ndarray 的创建及获取属性

上节课我们有提到过 ndarray 的创建,我只需要将列表传入到 np.array() 函数中。例如:

>>> import numpy as np
>>>
>>> my_list = [1, 2, 3, 4, 5, 6]
>>> my_arr = np.array(my_list)
>>>
>>> my_arr
array([1, 2, 3, 4, 5, 6])

ndarray 创建完成后,我们可以查看 ndarray 的属性。

1.查看类型

1.1查看 ndarray 的类型

一维数组:

>>> import numpy as np
>>>
>>> my_list = [1, 2, 3, 4, 5, 6]
>>> my_arr = np.array(my_list)
>>>
>>> type(my_arr)
<class 'numpy.ndarray'>

二维数组:

>>> import numpy as np
>>>
>>> my_list = [[1.1, 2.2, 3.3], [4.4, 5.5, 6.6]]
>>> my_arr = np.array(my_list)
>>>
>>> type(my_arr)
<class 'numpy.ndarray'>

由于类型为 ndarray,所以代码中得到的类型为 <class 'numpy.ndarray'>

1.2查看 ndarray 中元素的类型

一维数组:

>>> import numpy as np
>>>
>>> my_list = [1, 2, 3, 4, 5, 6]
>>> my_arr = np.array(my_list)
>>>
>>> my_arr.dtype
dtype('int64')

由于 ndarray 中的元素为整型,所以代码中得到的元素类型为int64
二维数组:

>>> import numpy as np
>>>
>>> my_list = [[1.1, 2.2, 3.3], [4.4, 5.5, 6.6]]
>>> my_arr = np.array(my_list)
>>>
>>> my_arr.dtype
dtype('float64')

由于 ndarray 中的元素为浮点型,所以代码中得到的元素类型为float64

2.查看维度信息

2.1查看维度数

一维数组:

>>> import numpy as np
>>>
>>> my_list = [1, 2, 3, 4, 5, 6]
>>> my_arr = np.array(my_list)
>>>
>>> my_arr.ndim
1

由于我们创建的是一维数组,所以代码中得到的维度数为 1。
二维数组:

>>> import numpy as np
>>>
>>> my_list = [[1.1, 2.2, 3.3], [4.4, 5.5, 6.6]]
>>> my_arr = np.array(my_list)
>>>
>>> my_arr.ndim
2

由于我们创建的是二维数组,所以代码中得到的维度数为 2。

2.2查看数组大小

一维数组:

>>> import numpy as np
>>>
>>> my_list = [1, 2, 3, 4, 5, 6]
>>> my_arr = np.array(my_list)
>>>
>>> my_arr.size
6

由于数组中包含 6 个元素,所以代码中得到的数组大小为 6。
二维数组:

>>> import numpy as np
>>>
>>> my_list = [[1.1, 2.2, 3.3], [4.4, 5.5, 6.6]]
>>> my_arr = np.array(my_list)
>>>
>>> my_arr.size
6

由于数组中包含 6 个元素,所以代码中得到的数组大小为 6。

2.3查看各维度大小

一维数组:

>>> import numpy as np
>>>
>>> my_list = [1, 2, 3, 4, 5, 6]
>>> my_arr = np.array(my_list)
>>>
>>> my_arr.shape
(6,)

由于我们创建的是一维数组,所以代码中得到的结果为 (6,)
二维数组:

>>> import numpy as np
>>>
>>> my_list = [[1.1, 2.2, 3.3], [4.4, 5.5, 6.6]]
>>> my_arr = np.array(my_list)
>>>
>>> my_arr.shape
(2, 3)

由于我们创建的是二维数组,所以代码中得到的结果为 (2,3)

3.查看元素信息

3.1查看元素占用的存储空间

一维数组:

>>> import numpy as np
>>>
>>> my_list = [1, 2, 3, 4, 5, 6]
>>> my_arr = np.array(my_list)
>>>
>>> my_arr.itemsize
8

由于元素的类型为 int64,所以占用的存储空间为 8 个字节。
二维数组:

>>> import numpy as np
>>>
>>> my_list = [[1.1, 2.2, 3.3], [4.4, 5.5, 6.6]]
>>> my_arr = np.array(my_list)
>>>
>>> my_arr.itemsize
8

由于元素的类型为 float64,所以占用的存储空间为 8 个字节。

二、使用函数创建 ndarray

前面创建 ndarray 的方法是将列表传入到函数 array() 中。除此之外,我们还可以使用函数来创建 ndarray。

1.arange 函数

>>> import numpy as np
>>>
>>> my_arr = np.arange(0, 12)
>>> my_arr
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])

上面的代码创建了一个包含 12 个元素的 ndarray,元素从 0 开始,到 11 结束,[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]。在使用 arange() 函数,当我们不指定步长时,默认的步长为 1。当然,我们亦可以明确指定步长。例如:

>>> import numpy as np
>>>
>>> my_arr = np.arange(0, 12, 3)
>>> my_arr
array([0, 3, 6, 9])

当我们指定步长为 3 时,生成的 ndarray 为 [0, 3, 6, 9]。arange() 函数的参数不但可以为整数,还可以为小数。例如:

>>> import numpy as np
>>>
>>> my_arr = np.arange(0, 6, 0.6)
>>> my_arr
array([0. , 0.6, 1.2, 1.8, 2.4, 3. , 3.6, 4.2, 4.8, 5.4])

上面的代码生成了数组 [0. , 0.6, 1.2, 1.8, 2.4, 3. , 3.6, 4.2, 4.8, 5.4]。上面使用 arange() 函数生成的是一维数组,我们可以在生成一维数组后对其进行重塑,这样便可以得到多维数组。例如:

>>> import numpy as np
>>>
>>> my_arr = np.arange(0, 12).reshape(3, 4)
>>> my_arr
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

在上面的代码中,调用 reshape() 函数对生成的一维数组进行重塑,便得到一个 3 行 4 列的二维数组。

2.linspace 函数

>>> import numpy as np
>>>
>>> my_arr = np.linspace(0, 10, 5)
>>> my_arr
array([ 0. ,  2.5,  5. ,  7.5, 10. ])

上述代码对区间 [0, 10] 进行 5 等分,取每个分界点的数字组成数组,便得到一维数组 [ 0. , 2.5, 5. , 7.5, 10. ]

3.zeros 函数

>>> import numpy as np
>>>
>>> my_arr = np.zeros(6)
>>> my_arr
array([0., 0., 0., 0., 0., 0.])

上述代码生成一个 6 个 0 的一维数组 [0., 0., 0., 0., 0., 0.]

>>> import numpy as np
>>>
>>> my_arr = np.zeros((2, 3))
>>> my_arr
array([[0., 0., 0.],
       [0., 0., 0.]])

上述代码生成一个 2 行 3 列的二维数组,[[0., 0., 0.], [0., 0., 0.]],数组的元素全为 0。在调用 zeros() 函数生成多维数组时,要注意传入的是一个元组,元组的各个元素指明了多维数组各个维度的大小。

4.ones 函数

ones() 函数和 zeros() 函数类似,只不过生成的数组中的元素全为 1。

>>> import numpy as np
>>>
>>> my_arr = np.ones(6)
>>> my_arr
array([1., 1., 1., 1., 1., 1.])

上述代码生成一个 6 个 1 的一维数组 [1., 1., 1., 1., 1., 1.]

>>> import numpy as np
>>>
>>> my_arr = np.ones((2, 3))
>>> my_arr
array([[1., 1., 1.],
       [1., 1., 1.]])

上述代码生成一个 2 行 3 列的二维数组,[[1., 1., 1.], [1., 1., 1.]],数组的元素全为 1。

5.random() 函数

我们可以使用 random() 函数来生成元素大小为随机的 ndarray。

>>> import numpy as np
>>>
>>> my_arr = np.random.random(3)
>>> my_arr
array([0.54326572, 0.9434831 , 0.3211316 ])

上面代码生成一个元素大小随机的一维数组 [0.54326572, 0.9434831 , 0.3211316 ]。使用 random() 函数同样可以生成二维数组。

>>> import numpy as np
>>>
>>> my_arr = np.random.random((2, 3))
>>> my_arr
array([[0.54522555, 0.64476058, 0.65039026],
       [0.67711815, 0.82748855, 0.44021124]])

总结

本章我们介绍了 ndarray 的创建以及 ndarray 属性的查看。

上一章 NumPy 介绍
下一章 ndarray的基本操作

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值