numpy1(ndarray的属性/形状/类型)

numpy

1.numpy基础

  • 一个开元的python科学计算库
  • 计算起来要比python简洁高效
  • Numpy使用ndarray对象来处理多维数组
    • ndarry的优势
      • 内存块风格
        • python中的list—分离式存储,存储内容多样化
        • ndarry—一体存储,存储类型必须一样
      • ndarry支持并行化运算(向量化运算)
      • ndarry底层是用C语言写的,效率更高

2. N维数组-ndarray

2.1数组的属性

属性名字 属性解释
ndarray.shape 数组维度的元组
ndarray.ndim 数组维数
ndarray.size 数组中的元素数量
ndarray.itemsize 一个数组元素的长度(字节)
ndarray.dtype 数组元素的类型
score = np.array([[80,89,86,67,79],[78,97,89,67,81],
                  [90,94,78,67,74],[91,91,90,67,69],
                  [76,87,75,67,86],[70,79,84,67,84],
                  [94,92,93,67,64],[86,85,83,67,80]])

a = score.shape
#(8, 5),8行5列,表示数组维度的元素

a = score.ndim
#2,数组的维数,该数组为一个2维数组

a = score.size
#40,数组中的元素数量,该数组中共有40个元素

a = score.itemsize
#4,在这40个元素中,每个元素的大小

a = score.dtype
#int32,数组元素的类型
print(a)

2.2 数组的形状

#array可以有很多维度,本次以1,2,3维度举列

a = np.array([1,2,3])
print(a.shape)
#(3,),一维数组,3个元素

a = np.array([[1,2,3],[4,5,6]])
print(a.shape)
#(2, 3),二维数组,2行3列

a = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]])
print(a.shape)
#三维数组可以看做是多个2维数组相叠加的结果
#(2, 2, 3),第1个2指的是包含2个2维数组,第2个2指的是2维数组中包含2个1维数组,3指的是一维数组中包含3个元素

2.3数组类型

名称 描述 简写
np.bool 用一个字节存储的布尔类型(True或False) 'b'
np.int8 一个字节大小,-128 ~ 127 'i'
np.int16 整数,-32768 ~ 32767 'i2'
np.int32 整数,-2^31 ~ 2^32 -1 'i4'
np.int64 整数,-2^63 ~ 2^63 - 1 'i8'
np.uint8 无符号整数,0 ~ 255 'u'
np.uint16 无符号整数,0 ~ 65535 'u2'
np.uint32 无符号整数,0 ~ 2^32 - 1 'u4'
np.uint64 无符号整数,0 ~ 2^64 - 1 'u8'
np.float16 半精度浮点数:16位,正负号1位,指数5位,精度10位 'f2'
np.float32 单精度浮点数:32位,正负号1位,指数8位,精度23位 'f4'
np.float64 双精度浮点数:64位,正负号1位,指数11位,精度52位 'f8'
np.complex64 复数,分别用两个32位浮点数表示实部和虚部 'c8'
np.complex128 复数,分别用两个64位浮点数表示实部和虚部 'c16'
np.object_ python对象 'O'
np.string_ 字符串 'S'
np.unicode_ unicode类型 'U'
#声明数据类型
a = np.array([[1,2,3],[4,5,6]],dtype=np.float32)
print(a.shape)

a = np.array(["hello","python","i",1],dtype=np.string_)#把所包含的元素全部转换为字符型
print(a.dtype)#S6,元素中最长的字符串为6
posted @ 2023-02-17 00:20  小杨的冥想课  阅读(79)  评论(0编辑  收藏  举报