numpy的简单使用(一)

目录

1.数组的简单创建

 数组的属性

如何修改数组的形状

数组的转置 

2.数组生成函数

np.ones_like(array)的简单使用

 以下是arange(b,e,s)的简单使用

 linspace(b,e,n)的简单使用

 logspace(b,e,n)的简单使用

 3.数据类型

 数据类型转化的方法


首先导入numpy包

import numpy as np

ndarray是存储单一数据类型的多维数组,在下面的代码中,我们可以看到事实上array是可以输入不同的数据类型的。

arr1=np.array([1,2,3,4,5,6,'呵呵','a'])
print("创建的数组为:{}".format(arr1),type(arr1))

但是建议将ndarray数组存储为单一数据类型,否则在数据转换时可能会出现问题。

arr1=np.array([1,2,3,4,5,6,'呵呵','a'])
print("创建的数组为:{}".format(arr1),arr1.dtype(int))

1.数组的简单创建

接下来我们就来看一下n维数组的简单创建,这里我们展示一至三维数组的创建方式

#创建一维数组
arr1=np.array([1,2,3,4,5,6])
print("创建的一维数组为:{}".format(arr1))
#创建二维数组
arr2=np.array([[1,2,3],[4,5,6],[7,8,9]])
print("创建的二维数组为:{}".format(arr2))
#创建三维数组
arr3=np.array([[[1,2,3],[4,5,6],[7,8,9]],[[10,11,12],[13,14,15],[16,17,18]]])
print("创建的三维数组为:{}".format(arr3))

 数组的属性

属性说明
ndim返回int。表示数组的维数
shape返回tuple。表示数组的尺寸
dtype返回data-type。描述数组中的元素类型
size返回int。表示数组的袁术总数,等于数组形状的乘积
itemsize返回int。表示数组的每个元素的大小(以字节为单位)
arr2=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(arr2.ndim)
print(arr2.shape)
print(arr2.dtype)
print(arr2.size)
print(arr2.itemsize)

 

如何修改数组的形状

我们以二维数组为例

这里我们使用shape函数,将原本3×3的二维数组修改成9×1的二维数组

arr2=np.array([[1,2,3],[4,5,6],[7,8,9]])
arr2.shape=9,1
print(arr2)

 

 这里我们还可以使用reshape函数,reshape函数的定义是将数据赋值给一个新的变量,所以对使用reshape函数本身的数组是不会受到影响的。

arr2=np.array([[1,2,3],[4,5,6],[7,8,9]])
arr2.reshape(9,1)
arr3=arr2.reshape(9,1)
print(arr2)
print(arr3)

 此处我们还有一个小技巧,我们的两种重塑数组形状的方式中,其中的行和列我们其实只要输入一个数据就行,另一个数据我们可以使用-1来替代,让我们的程序自己计算这个值应该为多少

arr2=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
print(arr2)
arr2.shape=3,-1
print(arr2)
arr2.shape=-1,2
print(arr2)

数组的转置 

arr2=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
print(arr2)
print(arr2.T)

 

2.数组生成函数

np.zero()生成全0数组
np.ones()生成全1数组
np.empty()创建未初始化的数组
np.eye(n)声称特征矩阵
np.full(n,num)生成指定维度、指定数值的数组
np.diag(list)生成对角矩阵
arr1=np.zeros(10)
print(arr1)
arr2=np.ones(10)
print(arr2)
arr3=np.empty(10)
print(arr3)
arr4=np.eye(5)
print(arr4)
arr5=np.full(3,5)
print(arr5)
arr6=np.diag([1,2,3])
print(arr6)

np.ones_like(array)生成一个与array形状一样的数组,其它也类似
arange(b,e,s)创建等差数列,包含初始值b,不包含终值e,相当于python中的range(),s为步长
linspace(b,e,n)创建等差数列,包含初始值b和终值b和终值e,n为创建的元素个数
logspace(b,e,n)创建等比数列,包含初始值(10^b)和终值(10^e)

np.ones_like(array)的简单使用

arr1=np.ones([5,5])
print(arr1)
arr2=np.ones_like(arr1)
print(arr2)

 以下是arange(b,e,s)的简单使用

arr1=np.arange(10,90,5)
print(arr1)

 linspace(b,e,n)的简单使用

arr1=np.linspace(10,90,5)
print(arr1)

 logspace(b,e,n)的简单使用

arr1=np.logspace(1,5,10)
print(arr1)

 3.数据类型

类型描述
bool用一位存储的布尔类型(值为TRUE或FALSE)
int整数,int8~int64,inti由平台决定(一般为int32或int64)
uint无符号整数,uint8~unit64
float浮点数,float16~float64
complex复数,complex64~complex128
string字符型数据
import sys
arr1=np.array([1,2,3],dtype=np.float64)
arr2=np.array([1,2,3],dtype='i4')
print(arr1,sys.getsizeof(arr1))
print(arr2,sys.getsizeof(arr2))
arr3=np.float32(arr1)
print(arr3,sys.getsizeof(arr3))

 数据类型转化的方法

类型转换方法astype(),会生成一个新的数组

ndarray.astype(np.float64)

整数可以转换成浮点数,

浮点数可以转换成整数,保留整数部分

也可以将表达数字含义的字符转换成整数或浮点数

如果转换失败,会抛出一个ValueError

以下是相关的测试代码

arr1=np.array([1,3,4,5,6,78])
arr2=arr1.astype(np.float64)
print(arr1)
print(arr2)
arr1=np.array([1.1,3.312,4.443,5.43,6.434,78.434])
arr2=arr1.astype(np.int8)
print(arr1)
print(arr2)
arr1=np.array(['1.1','3.312','4.443','5.43','6.434','78.434'])
arr2=arr1.astype(np.float64)
print(arr1)
print(arr2)

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桜キャンドル淵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值