numpy学习3:对象属性和基本数据类型

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> numpy学习3:对象属性和基本数据类型

一、ndarray对象属性

ndim 数组轴(维度)的个数,轴的个数被称作秩

shape 数组的维度, 例如一个2排3列的矩阵,它的shape属性将是(2,3),这个元组的长度显然是秩,即维度或者ndim属性

size 数组元素的总个数,等于shape属性中元组元素的乘积。

dtype一个用来描述数组中元素类型的对象,可以通过创造或指定dtype使用标准Python类型。不过NumPy提供它自己的数据类型。

itemsize 数组中每个元素的字节大小。例如,一个元素类型为float64的数组itemsiz属性值为8(=64/8),又如,一个元素类型为complex32的数组item属性为4(=32/8).


a = np.array([[1,2,3],[4,5,6]])
print("维度的数量:",a.ndim)
print("数组元素类型:",a.dtype)
print("数组的元素个数:",a.size)
print("数组的形状:",a.shape)
print("数组中每个元素的字节大小:",a.itemsize)

输出:
维度的数量: 2
数组元素类型: int32
数组的元素个数: 6
数组的形状: (2, 3)
数组中每个元素的字节大小: 4

二、numpy中的基本数据类型

下面的这两张图是所有的数据类型:


创建numpy数组的时候可以通过属性 dtype显示指定数据类型,如果不指定的情况下,numpy会自动推断出适合的数据类型,所以一般不需要显示给定数据类型。

  • 指定类型创建:

    
    a = np.array([[1,2,3],[4,5,6]],dtype=int)
    
  • astype方法
    如果需要更改一个已经存在的数组的数据类型,可以通过 astype方法进行修改从而得到一个新数组。

    
    a = np.array([[1,2,3],[4,5,6]])
    print("改变前的类型:",a.dtype)
    a = a.astype(float)
    print("改变后的类型:",a.dtype)
    

    输出
    改变前的类型: int32
    改变后的类型: float64

三、修改ndarray的形状

对于一个已经存在的ndarray数组对象而言,可以通过修改形状相关的参数方法从而改变数组的形状。

  • 直接修改数组ndarray的shape值, 要求修改后乘积不变。
  • 直接使用reshape函数创建一个改变尺寸的新数组,原数组的shape保持不变,但是新数组和原数组共享一个内存空间,也就是修改任何一个数组中的值都会对另外一个产生影响,另外要求新数组的元素个数和原数组一致。

当指定某一个轴为-1的时候,表示将根据数组元素的数量自动计算该轴的长度值。

  • 修改数组的shape值

    
    #调整数组大小
    a = np.array([[1,2,3],[4,5,6]])
    a.shape=(3,2)
    print(a)
    
  • 使用reshape函数修改


'''
    reshape 调整数组大小
'''
a = np.array([[1,2,3],[4,5,6]])
b = a.reshape(3,2)
print(b)

输出:
[[1 2]
[3 4]
[5 6]]

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号: cplus人工智能算法后端技术,获取优质学习资源。

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> numpy学习3:对象属性和基本数据类型


 上一篇
matplotlib绘图入门详解 matplotlib绘图入门详解
matplotlib是受MATLAB的启发构建的。MATLAB是数据绘图领域广泛使用的语言和工具。MATLAB语言是面向过程的。利用函数的调用,MATLAB中可以轻松的利用一行命令来绘制直线,然后再用一系列的函数调整结果。 matplotl
下一篇 
numpy学习4:NumPy基本操作 numpy学习4:NumPy基本操作
一、数组与标量、数组之间的运算数组不用循环即可对每个元素执行批量的算术运算操作,这个过程叫做矢量化,即用数组表达式代替循环的做法。 矢量化数组运算性能比纯Python方式快上一两个数据级。 大小相等的两个数组之间的任何算术运算都会将其运算应