Python数组属性方法

**

数组属性的使用:*

数组对象提供了相应的属性,以读取所需要的属性值
(1)、ndim属性,返回数组的维数

import numpy as np
ar1 = np.array([[i for i in "abc"],[i for i in "def"],[i for i in "ghi"]])  #建立一个三行三列为字符型的数组
ar1

array([[‘a’, ‘b’, ‘c’],
[‘d’, ‘e’, ‘f’],
[‘g’, ‘h’, ‘i’]], dtype=’<U1’)

ar1.ndim   #查看数组的维度

2

(2),shape,返回数组的形状大小

ar1.shape   #查看数组的形状大小

(3, 3)

(3)size,返回数组元素个数

ar1.size

9

(4) dtype,返回数组元素类型

ar1.dtype

dtype(’<U1’)

(5)itemsize,返回数组元素字节大小

ar1.itemsize

4

2、数组方法的使用

a = np.arange(0,9)   #创建一个0到8一维数组
a

array([0, 1, 2, 3, 4, 5, 6, 7, 8])

(1)、reshape方法,改变数组形状

a_2 = a.reshape((3, 3))
a_2 

array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])

既然shape属性是获取数组的形状(返回一个元组类型),那我们可以

a.shape = (3,3)
a

array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
前者是创建一个新的数组,后者是直接在a对象的基础上直接更改

(2)、all方法,判断指定的数组元素是否都是非0,则返回True,否则返回False

m = np.ones(9).all()
m

True

m_2 = np.arange(0,9).reshape((3,3))
m_2[1,2] = 0
m_2

array([[0, 1, 2],
[3, 4, 0],
[6, 7, 8]])

m_2.all(axis=1)   #从行的方向上判断每行的值是否存在0值

array([False, False, True])

(3)、any方法,判断数组元素若有非0值,则返回True,否则返回False

m_3 = np.array([[1,0,2],[0,0,2]])
m_3

array([[1, 0, 2],
[0, 0, 2]])

m_3.any(axis=0)

array([ True, False, True])

m_3.any(axis=1)

array([ True, True])

(4) copy方法,复制数组副本

ar2 = ar1  #直接将数组ar1 赋值给ar2
id(ar2) == id(ar2)   #获取分别获取ar1与ar2的内存地址,判断其是否都指向同一块内存地址

True

ar3 = ar1.copy()   #使用copy方法
id(ar3) == id(ar1) 

False

(5). astype方法,改变数组元素类型

a = np.eye(3,3,dtype='int')
a

array([[1, 0, 0],
[0, 1, 0],
[0, 0, 1]])

a.astype(dtype=float)

array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值