python int 型数组_python---numpy(1)

6188e4721c8826ff590deba14e2704eb.png

numpy 是什么

1. 简单来说,Numpy 是 Python 的一个科学计算包,包含了多维数组以及多维数组的操作。

2. Numpy 的核心是 ndarray 对象,这个对象封装了同种数据类型的n维数组

3. ndarray中的每个元素在内存中使用相同大小的块。 ndarray中的每个元素是数据类型对象的对象(称为 dtype)。

adarray:由两部分组成

① 实际的数据

② 描述这些数据的元数据

# 构建ndarray
import numpy as np # 导入包

# 方法一 :array
# np.array() 就相当于我们学习过的list,int,str等等,,将其他的数据类型转换为ndarray
# 基本语法
# np.array(data,dtype)  # data :要转换的数据(包括列表,元祖,字符串,生成器),dtype :指定数据类型
a1=[1,2,3,4]  # 列表
a2=(3,4,5)   ## 元祖
a3=list("abcderfg")  # 字符串  这里注意一下不能直接写成字符串形式,实际上是个由字符串构成的列表



n1=np.array(a1)
n2=np.array(a2)
n3=np.array(a3)
print(n1,n2,n3,sep="n")  # 分隔符为换行
# 输出数组,注意数组的格式:中括号,元素之间没有逗号(和列表区分)

n2  #  #jupyter交互方式下输出,会有array(数组),默认只输出最后一个
n3

902081a095b70da64012ee9c5702a62a.png
# 生成器 range()----生成整数
# 语法range(start,end,step)  start:起始值,end,结束值,step :步长,左闭又开(包括起始值,不包括结束值)
n1=range(10)  # 只要一个数,默认是生成个数
n2=range(5,10) # 有两个参数时,第一个参数时start ,第二个是end
n3=range(0,10,2) # 有三个参数时,第三个是步长


a1=np.array(n1)
a2=np.array(n2)
a3=np.array(n3)
print(a1,a2,a3,sep="n")

3546074d50c58faeade4506c77c5122a.png
#  arange:Python内建函数range的数组版,返回一个数组。,range:不能生成小数型数组,arange可以生成
# 语法跟range一样的,注意一点的是,np.arange 直接生成数组,而不需要转换
n1=np.arange(10)  
n2=np.arange(5,10)
n3=np.arange(0,10,2)
n4=np.arange(10.0)  # 小数型

print(n1,n2,n3,n4,sep="n")

print(n4.dtype,n1.dtype,sep="n") # 查看数据类型 dtype方法

0d8b4a15d1e186539bbdced3068ff076.png

65173da9578532bc743accea87055c7c.png
# 创建矩形时,会跟一维数组有什么不一样呢?
a1=[[1,2,3],[2,3,4]] # 二维列表,我刚开始学的时候,有几个中括号,我就判断几维
a2=[[1,2,3],["a","b","c"]] # 不同数据类型
a3=[[1,2,3],[6,7,8,9]]

n1=np.array(a1)
n2=np.array(a2)
n3=np.array(a3)
print(n1,n1.dtype)#
print() # 换行
print(n2,n2.dtype)
print()
print(n3,n3.dtype)

be2e0917fd3a6127e36c090c40e3b286.png

d77ae759309737a963c6725210b206d1.png
  1. 从上面的n3 结果来看,虽然不报错,也不建议,所以我们一般要求是,多维数组的中的每个元素中的元素的个数尽量一致
  2. n2原来列表来看是,有整数型,字符串型数据,但从结果来看,整数型变成字符串型了?为什么呢,下面我会讲的
  3. 核心:ndarray里面只能装同一种数据类型,且多维数组中的每个元素中的元素个数最好一致

e23b4c963cabdd53ce7671a7f39a56d9.png
#  浮点型我们一般是用float64,整型一般用int ,int8-32,
# 重点: ndarray里面只能装同一种数据类型,再重复一遍
#请记住,不同于 Python 列表,NumPy 要求数组必须包含同一类型的数据。如果类型不匹配,NumPy 将会向上转换(如果可行)。

#下面让我们来看一下什么叫做**向上转换**(也可以理解为向兼容性更强的方向转换).

f7d87a6d9f03c703dfddde3542cffcf8.png
# 字符串和其他类型的转换
L=[1,3,4,"1"]
L2=[1,2,3,"A"]
n1=np.array(L,dtype="int")   # 结果报错,这里我注释,为了看结果,你们可以自己运行一下
#n2=np.array(L2,dtype="int")
print(n1,n1.dtype)
# 可以看到,向下转换时,数字字符串才可以向下转换,其他字符串不可以

[1 3 4 1] int32

# 从上面可以看到,转换类型的方式,有点不友好,是把其他数据类型转换为数组时,设置类型,但是要是已经数组的?怎样转换类型
# .astype()
a=[1,2,3,4]
n=np.array(a)
print(n,n.dtype)
print()
n1=n.astype(np.float64) # 变成浮点型,注意一点的是,转换类型时候,原数组不变,重新生成一个数组,再变换类型
print(n,n1,n1.dtype,sep="n")

[1 2 3 4] int32
[1 2 3 4]
[1. 2. 3. 4.]
float64

明天再更新

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值