前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Numpy入门之 数组大小和元素类型

Numpy入门之 数组大小和元素类型

作者头像
用户6021899
发布2019-08-14 15:52:17
1.3K0
发布2019-08-14 15:52:17
举报
  • 数组的大小(shape)

1. 数组的大小,可以通过其shape属性获得:

代码语言:javascript
复制
>>> a = np.array([1,2,3,4])
>>> a.shape
(4,)
>>> b = np.array([[1, 2, 3, 4], [4, 5, 6, 7], [7, 8, 9, 10]])
>>> b.shape
(3, 4)

2. 改变数组的shape:

代码语言:javascript
复制
>>> b.shape = (4,3)
>>> b
array([[ 1,  2,  3],
       [ 4,  4,  5],
       [ 6,  7,  7],
       [ 8,  9, 10]])
>>> b.shape = (2,6)
>>> b
array([[ 1,  2,  3,  4,  4,  5],
       [ 6,  7,  7,  8,  9, 10]])

注意:改变shape属性只是调整每个维度的大小,数组的元素在内存中的位置并没有改变(因此元素的总数保持不变),只是改变了索引的方式。

3. 使用数组的reshape方法,可以创建一个改变了尺寸的“新”数组,原数组的shape保持不变:

代码语言:javascript
复制
>>> d = a.reshape((2,2))
>>> d
array([[1, 2],
       [3, 4]])
>>> a
array([1, 2, 3, 4])

注意:a和d其实共享内存空间,因此,对其中任意一个数组的元素的修改,都会同时修改另一数组的对应元素:

代码语言:javascript
复制
>>> a[3]=0
>>> d
array([[1, 2],
       [3, 0]])
>>> d[0,1]=99
>>> a
array([ 1, 99,  3,  0])
  • 数组元素类型
  1. 通过数组的dtype属性获得元素的数据类型:
代码语言:javascript
复制
>>> a.dtype
dtype('int32')
>>> np.array("abcd").dtype
dtype('<U4')
>>> np.arange(0,10,0.01).dtype
dtype('float64')

2. 可通过dtype参数在数组创建时指定元素类型:

代码语言:javascript
复制
>>> np.array([1,2,3,4], dtype=np.float)  #浮点数
array([1., 2., 3., 4.])
>>> np.array([1,2,3,4], dtype=np.complex)  #复数
array([1.+0.j, 2.+0.j, 3.+0.j, 4.+0.j])

3. 通过数组的astype可以生成一个转换了数据类型的数组,默认与原数组共享内存空间。

代码语言:javascript
复制
>>> x = np.array([1,2,3])
>>> x.dtype
dtype('int32')
>>> y = x.astype(np.float64)
>>> y.dtype
dtype('float64')
>>> y[0]=99
>>> y
array([99.,  2.,  3.])
>>> x
array([1, 2, 3])
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python可视化编程机器学习OpenCV 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档