numpy简明学习笔记(一)建立数组、数组属性、运算

一维数组

array将输入的数据(列表、元组等序列)转换为数组,默认使用输入的数据类型,使用dtype指定类型

In [1]: import numpy as np

In [2]: l=[1,2,3,4]

In [3]: arr=np.array(l)

In [4]: arr
Out[4]: array([1, 2, 3, 4])

In [5]: arr=np.array([1,2,3,4])

In [6]: arr
Out[6]: array([1, 2, 3, 4])

多维数组

  • ones zeros分别创建指定长度或形状的全1或全0数组,默认类型为float64,使用dtype指定类型
  • zeros_like ones_like根据指定数组的形状和类型建立全0或全1数组
  • eye identity创建一个N*N的二维矩阵,对角线为1,其余为0
# array
In [7]: arr2=np.array([[1,2,3],[4,5,6],[7,8,9]])

In [8]: arr2
Out[8]: 
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
       
# ones,zeros
In [9]: arr2_ones=np.ones((3,3))

In [10]: arr2_ones
Out[10]: 
array([[1., 1., 1.],
       [1., 1., 1.],
       [1., 1., 1.]])

In [11]: arr2_zeros=np.zeros((3,3))

In [12]: arr2_zeros
Out[12]: 
array([[0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.]])
       
# 指定类型       
In [13]: arr2_ones1=np.ones((3,3),dtype=np.int64)

In [14]: arr2_ones1
Out[14]: 
array([[1, 1, 1],
       [1, 1, 1],
       [1, 1, 1]], dtype=int64)

# zeros_like,ones_like       
In [15]: arr2_zeros1=np.zeros_like(arr2_zeros)

In [16]: arr2_zeros1
Out[16]: 
array([[0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.]])

# eye,identity
# 创建5*5的二维矩阵,类型为int64
In [17]: np.eye(5,dtype=np.int64)
Out[17]: 
array([[1, 0, 0, 0, 0],
       [0, 1, 0, 0, 0],
       [0, 0, 1, 0, 0],
       [0, 0, 0, 1, 0],
       [0, 0, 0, 0, 1]], dtype=int64)

数组属性

  • dtype数据类型,shape数组长度、形状,ndim数组维数
  • astype数据类型转换,转换后生成新数组,不影响原数组
In [18]: arr2.dtype
Out[18]: dtype('int32')

In [19]: arr2_ones.shape
Out[19]: (3, 3)

# 一维数组
In [20]: arr.shape
Out[20]: (4,)

# ndim数组维数
In [21]: arr2_ones.ndim
Out[21]: 2

In [22]: arr.ndim
Out[22]: 1

# astype数据类型转换
# float64->int32
In [31]: arr = np.array([3.7, -1.2, -2.6, 0.5, 12.9, 10.1])

In [32]: arr
Out[32]: array([ 3.7, -1.2, -2.6,  0.5, 12.9, 10.1])

In [33]: arr.astype(np.int32)
Out[33]: array([ 3, -1, -2,  0, 12, 10])

# string->float
In [34]: numeric_strings = np.array(['1.25', '-9.6', '42'], dtype=np.string_)

In [35]: numeric_strings.astype(float)
Out[35]: array([ 1.25, -9.6 , 42.  ])

数组运算

  • 对数组的运算会应用到数组所有元素里
  • 大小相同的数组之间运算应用到每个相同位置的元素
  • 数组运算不影响原数组内容
  • 数组之间比较生成布尔值
In [39]: arr = np.array([[1., 2., 3.], [4., 5., 6.]])

In [40]: arr * arr
Out[40]: 
array([[ 1.,  4.,  9.],
       [16., 25., 36.]])

In [41]: arr * 5
Out[41]: 
array([[ 5., 10., 15.],
       [20., 25., 30.]])

# 运算不影响原数组
In [42]: arr
Out[42]: 
array([[1., 2., 3.],
       [4., 5., 6.]])

# 数组比较产生布尔值
In [43]: arr2 = np.array([[0., 4., 1.], [7., 2., 12.]])

In [45]: arr2 > arr
Out[45]: 
array([[False,  True, False],
       [ True, False,  True]])
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值