文章目录
基本示例
#coding=utf-8
import random
import numpy as np
#使用numpy生成数组,得到ndarray的类型
t1=np.array([1,2,3,])
print(t1)
print(type(t1))
t2=np.array(range(10))
print(t2)
t3=np.arange(4,10,2)##生成一个数组
print(t3)
print(t3.dtype)
#numpy中的数据类型
t4=np.array(range(1,4),dtype="int64")
print(t4)
print(t4.dtype)
#numpy中的小数,生成10个0到1的数字
t5=np.array([random.random() for i in range(10)])
print(t5)
a=random.random()
print(a)
数组的计算
#coding=utf-8
import random
import numpy as np
t1 = np.arange(12)
print(t1)
print(t1.shape)
# 二维数组
t2 = np.array([[1, 2, 3], [4, 5, 6]])
print(t2)
print(t2.shape) # 结果第一个数表示行数,第二个表示列数片
# 三维数组
t3 = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print(t3)
print(t3.shape) # 结果第一个数为块数,第二个表示为每一块中的行数,第三个数表示每一块中的列数
# 二维数组的计算
t2 = np.array([[1, 2, 3], [4, 5, 6]])
t3=np.array([[1, 2, 3], [4, 5, 6]])
print(t2+t3)
(3,3,3)第一个3表示3块数组,第二个3表示3行,第三个3表示3列。
numpy读取本地数据和索引
轴
二维数组的转置
#coding=utf-8
import numpy as np
t2=np.arange(24).reshape(4,6)
print(t2)
print(t2.transpose())#
numpy的索引和切片
1.取单行
#coding=utf-8
import numpy as np
t1=np.arange(45).reshape(9,5)
print(t1)
#取第三行
print("第三行数据为:",t1[2])
2.取多行
#coding=utf-8
import numpy as np
t1=np.arange(45).reshape(9,5)
print(t1)
print("第二行及其之后的数据\n",t1[1:])
#取不连续的多行
print("取3,5,6行",t1[[2,4,5]])
#取行
print("22",t1[2:])
print("33",t1[[2,8,3],:])#第三,九,四行
3.取单列和多列
#coding=utf-8
import numpy as np
t1=np.arange(45).reshape(9,5)
print(t1)
#取单列
print(t1[:,0])
#取连续多列
print(t1[:,2:])#第三列之后的
#取不连续多列
print(t1[:,[0,2]])#第1列和第3列
4.取点
#取多行和多列
print(t1[2,3])#3行4列
b=t1[2:5,1:4]#第三行到第五行,第二列到第四列
print(b)#取的是交叉点的位置
#取多个不相邻的点
c=t1[[0,2,2],[0,1,3]]#(0,0,)(2,1)(2,3)
print(c)
numpy修改数值
#coding=utf-8
import numpy as np
t1=np.arange(30).reshape(5,6)
print(t1)
print(t1>10)
import numpy as np
#创建数组
t1=np.arange(30).reshape(5,6)
#打印数组
print(t1)
print("="*30)
#输出bool值
print(t1>10)
print("="*30)
#数组值的修改,<10改为0
# t1[t1<10]=0
print(t1)
print("="*30)
numpy数组的拼接
竖直分割为竖直方向,可以记忆为竖直拼接为竖直方向
#coding=utf-8
import numpy as np
t1=np.arange(30).reshape(5,6)
t2=np.arange(20).reshape(4,5)
print(t1)
#行交换
t1[[1,2],:]=t1[[2,1],:]
print(t1)
print("="*30)
#问:如何把两份数据整合到一起
#构造全为0的数据
zeros_data=np.zeros((t1.shape[0],1))
ones_data=np.ones((t2.shape[0],1))
#分别添加一列全为0,1的数据
t1=np.hstack((t1,zeros_data))
t2=np.hstack((t2,ones_data))
#拼接两组数据
print(np.vstack((t1)))
numpy中的nan和inf