一.认识numpy
1.什么是numpy
一个在Python中做科学计算的基础库,重在数值计算,也是大部分PYTHON科学计算库的基础库,多用于在大型、多维数组上执行数值运算
2.numpy创建数组(矩阵) eg:Day03_mydata_01
np.array([,,])
arange(start,end,step) #在numpy中相当于range的用法,但是arange只能用在numpy中,还需要进行导包
import numpy as np
import random
print("将列表转化为数组:")
t1=np.array([1,1,2,3])
print(t1)
print(type(t1))
t2=np.arange(0,10,2)
print(t2)
print(type(t2))
将列表转化为数组:
[1 1 2 3]
<class 'numpy.ndarray'>
[0 2 4 6 8]
<class 'numpy.ndarray'>
3.numpy的数据类型 eg:Day03_mydata_02
dtype()、type()与astype()
np.round(数组,位数)可以将小数转换为需要的位数
type() | 返回数据结构类型(list、dict、numpy.ndarray 等) |
dtype() | 返回数据元素的数据类型(int、float等) 备注:1)由于 list、dict 等可以包含不同的数据类型,因此不可调用dtype()函数 2)np.array 中要求所有元素属于同一数据类型,因此可调用dtype()函数 |
astype() | 改变np.array中所有数据元素的数据类型。 备注:能用dtype() 才能用 astype() |
import numpy as np
import random
print("显示元素的数据类型:")
t4=np.arange(0,10,2)
print(t4)
print(t4.dtype) #显示元素的数据类型,此处要注意dtype的调用方式
print("通过dtype更改元素的数据类型-bool:")
t5=np.array([1,0,1,1,0,0,1],dtype="bool")
print(t5)
print(t5.dtype)
print("通过dtype更改元素的数据类型-float:")
t6=t5.astype("float")
print(t6)
print(t6.dtype)
print("numpy中的小数:")
t7=np.array([random.random() for i in range(10)]) #random函数会生成0-1之间的小数,后使用循环算法,循环10次,生成10个小数
#array只能将列表转换成数组,其他形式都不能进行转换
print(t7)
print(t7.dtype)
print("设置小数位数:")
t8=np.round(t7,2) #此处调用np内部的方法round选择保存的小数位数
print(t8)
print(t8.dtype)
显示元素的数据类型:
[0 2 4 6 8]
int32
通过dtype更改元素的数据类型-bool:
[ True False True True False False True]
bool
通过dtype更改元素的数据类型-float:
[1. 0. 1. 1. 0. 0. 1.]
float64
numpy中的小数:
[0.32849504 0.24031521 0.0226177 0.38362813 0.79525832 0.72865308
0.13621076 0.04248764 0.89899634 0.41417803]
float64
设置小数位数:
[0.33 0.24 0.02 0.38 0.8 0.73 0.14 0.04 0.9 0.41]
float64
4.数组的形状
查看数组形状 eg:Day03_mydata_03
a.shape
修改数组形状 eg:Day03_mydata_03
a.reshape((行,列))
import numpy as np
t1=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
print(t1)
print("查看数组的形状:",t1.shape)
print("改变数组的形状:",t1.reshape((2,6)))
此处reshape只在当前对数组进行形状的改变,而没有真正改变数组,调用reshape方法返回值即为新改变后的数组形状。若调用的方法没有返回值时,用新的变量接收则该变量为none值。
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
查看数组的形状: (3, 4)
改变数组的形状: [[ 1 2 3 4 5 6]
[ 7 8 9 10 11 12]]
把数组转换成一维数组 eg:Day03_mydata_04
a.reshape(1,元素数量)
a.flatten()
import numpy as np
a=np.array(range(1,13))
b=a.reshape(3,4)
print("三行四列数组:",b)
c=b.reshape(1,12) #此处12代表该元组有12个数字
print("通过reshape改变数组形状:",c)
c=b.flatten()
print("通过flatten函数改变数组形状:",c)
三行四列数组: [[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
通过reshape改变数组形状: [[ 1 2 3 4 5 6 7 8 9 10 11 12]]
通过flatten函数改变数组形状: [ 1 2 3 4 5