python numpy基本操作

import numpy as np
# 基本操作
a= np.array([1,2,3,4])
b= np.arange(4)
c1 = a-b
c2 = a*b
print(a)
print(a.ndim)
print(a.shape)
print(a.size)
print(b)
print(c1)
print(c2)
# 点乘
c3 = a.dot(b)
print(c3)
c4 = a**2
print(c4)
import numpy as np
# 用array和arange创建多维数组
a = np.array([[1,2,3],[0,3,-1]])
print(a)
b = np.arange(6).reshape((3,2))
print(b)
c = a.dot(b)  # 点乘
print(c)
# 随机值
a = np.random.random((2,3))
print(a)
print(np.sum(a))
print(np.min(a))
print(np.mean(a))
print(np.sum(a, axis=0))
# 矩阵基本操作
a= np.arange(2,14).reshape((3,4))
print(a)
print(np.argmin(a)) # 最小元素值索引:0
print(np.argmax(a)) # 最小元素值索引:0
print(np.mean(a)) # 整个矩阵的均值
print(a.mean()) # 和上面一样
print(np.average(a)) # 平均数
print(np.median(a))  # 中位数
print(np.cumsum(a))  # 累加,每个位置的值=左边所有元素的和,有点像scala中的fold?
print(np.diff(a))  # 累差运算?什么鬼
import numpy as np
a= np.arange(14,2,-1).reshape((3,4))
print(a)
print(np.sort(a))  # 只对每行排序?
print(np.transpose(a))  # 转置
print(a.T)  # 转置
print(np.clip(a,5,9)) # 所有元素按5-9剪切,小于5的都置为5,大于9的都置为9
# 索引和切片
import numpy as np

a=np.arange(3,15).reshape((3,4))
print(a)
print(a[1]) # 第3行
print(a[1][2]) # 第2行第3个元素
print(a[1,2:3]) # 第2行,第2-3个元素,前包后不包
print(a[1][2:3]) # 这种是在前一个切片的结果中再切片,因为第一个切片结果是一维的,所以结果刚好和上一条语句一样
print(a[0:2][1:2]) # 因为a[0:2]的结果还是一个二维数组,所以后面的[1:2]是在前面的结果中再取
print(a[0:2,1:3]) # 同时对行和列进行切片。如果要取前2行,1-2列,就用这种方法
print('-------------')
for row in a:
    print(row)
b = np.arange(12).reshape((3,4))
print(b)
print(b.flatten())

你可能感兴趣的:(基础知识)