numpy学习笔记

Numpy的数组array和矩阵matrix

Numpy的主要对象是同种元素的多维数组。区别于python的list(可存储多种)。这是一个所有的元素都是一种类型,通过一个正整数元组索引的元素表格(通常元素是是数字)。

在Numpy种维度(dimensions)角坐轴(axes)

 

0维(标量): 3

一维(数组/向量):[1,2]

二维(矩阵):[[1,2],[3,4]]

三维(及以上称为张量):[[[1,2],[3,4]]

 

 

numpy的索引和切片区别

最主要的是,索引维度根据索引输入维度,下降相应维度;切片,返回结果维度是不会下降的。

因此,"X[ 切片1,切片2]" 和" "X[切片1][切片2]"结果不相同。前面相当于”切片1" 匹配维度0索引,”切片2“匹配维度1索引。 后者则是, 先获取"X[切片1]" (数据维度不变),在原来的数据维度上,再获取依此”切片2“指定索引。

print("ndarray的基本索引")
x = np.array([[1,2],[3,4],[5,6]])
print(x.shape)
print(x[2],"   ",x[2][1]) # 索引获取
print(x[2,1])

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

y = x[0].copy() #生成一个副本
z = x[0] #未生成副本 。始终记得python赋值类似传引用。
print(y)
print(z)

y[0,0] = 9 #独立副本互不关联
print(y)
print(x)
z[0,0] = 9 #
print(x)

#切片演示
print("narray的切片")
x = np.array([1,2,3,4,5])
print(x[1:4])
print(x[:3])
print(x[1:])
print(x)
print(x[0:4:2])

x = np.array([[1,2],[3,4],[5,6]])
print(x[:2])
print(x[:2,:1]) #索引。注意左闭右开。切片前后数据维度不会降低。这边会生成成 索引值。最终形式是 [1,3]
print(x[:2][:1]) #切片。和上面值不一样.切片不会改变数据维度。 过程是 获取  [[1,2],[3,4]] 此时维度还是之前的, 再接[:1] ,相当于取[1,2]

x[:2,:1] = 9 #标量可以上升到任意维度进行广播
#x[:2,:1] = 3,4 #将会排除异常。 标量外的其余情况赋值,需要维度匹配. 全部是 切片,返回的数据维度不变。 有一个是标量,则是索引,维度下降

 

posted @ 2020-10-18 11:13  飘零_未知的坚持  阅读(84)  评论(0编辑  收藏  举报