numpy笔记

import numpy as np
#第三章 numpy 的基本属性
'''
array = np.array([[1,2,3],[2,3,4]]) 确定一个数组 其中不要忘了括号的问题
print(array)
print('num of dim',array.ndim) 数组的维数,也就是行
print('shape',array.shape) 数组的形状,返回的是(2,3)也就是行和列
print('size',array.size) 数组中数值的多少
'''
#第四章 numpy中数组或矩阵的创建
'''
a = np.array([2,3,4],dtype=np.int64)
print(a.dtype) 查看数组中数值的类型
b = np.array([2,3,4],dtype=np.float64)
print(b.dtype)
#一个数组中类型非常多,有int16 32 64 等,如果位数大,所占空间就会变大,运算的速度会变慢,但是精度会增加
array = np.array([[1,2,3],
                  [2,3,4]])
print(array)
a = np.zeros((3,4)) 生成一个3行4列的0矩阵
print(a)
a = np.ones((3,4),dtype=np.int16) 生成一个3行4列元素全部为1的类型为16位整型的矩阵
print(a)

a = np.empty((3,4))生成了一个非常接近0的矩阵
print(a)

a = np.arange(10,20,2) 生成一个步长为2的矩阵
print(a)
a = np.arange(14,2,-1) 生成一个步长为-1的矩阵

b = np.arange(4) 生成一个从0到3,步长为默认值1 的数列

!!!!a = np.arange(12).reshape(3,4)生成一个从0到11!!!!!,3行4列的矩阵
print(a)

a = np.linspace(1,10,5) 生成一个线性数据,从1到10,一共分成五段
print(a)

a = np.linspace(1,10,6).reshape(2,3) reshape 也可以用
print(a)
'''
#第五章numpy的基础运算
'''


a = np.array([10,20,30,40])
b = np.arange(4) 生成一个

c = b**2 直接把每一个数字都平方


a = np.array([10,20,30,40])
b = np.arange(4)

c = 10*np.sin(a)对a中的值先求正弦,然后用10乘


print(c)

a = np.array([10,20,30,40])
b = np.arange(4)
print(b<3)  返回的值为t或者f,同样是一个矩阵,里面的值是char类型的
print(b==3) 返回的值为t或者f,同样是一个矩阵,里面的值是char类型的

a = np.array([[1,1],
             [0,1]])
b = np.arange(4).reshape(2,2)
print(a)
print(b)

c = a * b
c_dot = np.dot(a,b)
c_dot_2 = adot(b) 上下两个一样的
print(c)  各个元素逐个相乘
print(c_dot) 按照矩阵的乘法运算法则来进行

a = np.random.random((2,4))
print(a)
b = np.sum(a,axis=1) 求每一行中的和
c = np.min(a,axis=0) 求每一列的最小值
d = np.max(a,axis=1) 求每一行的最大值

a = np.arange(2,14).reshape(3,4) 
c = np.argmin(a)
#找出来这里面的最小值是在哪个位,2最小在第一个位置,arg是0
#argmax同样的
print(c)
x = np.mean(a)
y = a.mean()
z = np.average(a)
x1 = np.median(a) 中位数 
x2 = np.cumsum(a) 这是把每一个数前面的一个数加到它身上,形成一个1维的数组,这个数组有n个元素
如
[ 2  5  9 14 20 27 35 44 54 65 77 90]

x3 = np.diff(a) 这是累差,把每个数减去前面一个数 ,原来有12个数,最后只会剩下9个,按照行来进行计算,只减同行的
如[[1 1 1] x12-x11 x13-x12 x14-x13
  [1 1 1]
  [1 1 1]]

a = np.arange(2,14).reshape(3,4) 
x4 = np.nonzero(a) 返回非零元素的位置,如
print(x4)
如
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), 
array(a[0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))

a = np.random.random((3,4))
print(a)
x5 = np.sort(a) 进行逐行的排序,每行求出最小值
print(x5)
如
[[0.07480998 0.60622102 0.71319619 0.94586877] 只是逐行进行排序
 [0.12604709 0.54268197 0.74713671 0.9641129 ]
 [0.09905505 0.2827937  0.79104972 0.88298559]]
a = np.random.random((3,4))
print(a)
x6 = np.transpose(a) 转置
x7 = (a.T) 同样也是转置,这样的写法更加的方便
print(x6)
print(x7)

a = np.arange(14,2,-1).reshape((3,4))
print(a)
x8= np.transpose(a)
x9 = (a.T)
x10 = (x9.dot(a)) ATA 转置乘以本体,矩阵的乘法要求同样的行数乘以同样的列数,行*列
x11 = (x8.dot(a))
print(x10)
print(x11)
a = np.arange(14,2,-1).reshape((3,4))
print(a)

x12 = np.clip(a,5,10) 把小于5大于10的数全都变成5和10
print(x12)

a = np.arange(14,2,-1).reshape((3,4))
print(np.mean(a,axis=0)) 按照列来进行求平均值
print(np.mean(a,axis=1)) 按照行来进行求平均值,最后输出的是一个数组
'''
#第六章 np的索引
'''
a = np.arange(3,15).reshape((3,4))

print(a)

print(a[3]) 输出排在第四为的数组数值,也就是6


print(a) 
print(a[2]) 输出这个数组的第三行
print(a[1][1]) 输出这个数组第二行第二列
print(a[1,1]) 同上
print(a[3,:]) 打印第二行所有数
print(a[:,2]) 打印第一列的所有数
print(a[2,1:3]) 打印第三行,从第二个位置到第三个位置的数 输出的值为数组,一个数也是数组

a = np.arange(3,15).reshape((3,4))
print(a)

[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]

print(a.T)

[[ 3  7 11]
 [ 4  8 12]
 [ 5  9 13]
 [ 6 10 14]]

for column in a:
  print(column) 

打印行,每一行按照数组的形式打印出
[3 4 5 6]
[ 7  8  9 10]
[11 12 13 14]

for row in a:
  print (row)

[3 4 5 6]
[ 7  8  9 10]
[11 12 13 14]
和上面的一样????


for column in a.T:
  print(column) 

[ 3  7 11]
[ 4  8 12]
[ 5  9 13]
[ 6 10 14]
以转置的形式

print(a.flatten())
print(a.flat)
#flatten返回一个函数,flat返回一个object
for item in a.flat:#迭代器是个啥
  print(item)
'''
#第七章array的合并
'''
a = np.array([1,1,1])#这两个都是以数组的
b = np.array([2,2,2])
x1 = a[:,np.newaxis] 
x2 = b[:,np.newaxis]
#在列上加了一个维度
x3 = a[np.newaxis,:]
x4 = b[np.newaxis,:]
#在行上增加一个维度
x5 = np.vstack((x3,x4))
#这样x5 变成了一个两行三列的矩阵,因为本来的x3,x4分别是一个一行三列的矩阵
x6 = np.hstack((x1,x2))
print(x5,x6)

x7 = np.concatenate((a,b,b),axis=0)
print(x7)
#这样输出的x7 也只有一维度仍旧是一个数组,而不是一个矩阵
x8 = np.concatenate((x2,x2,x1),axis=1)
print(x8)
#相比较而言,concatenate这个函数可以在后面定义在哪一个维度上进行数组或者矩阵的合并
'''
#第八章 array的分割
'''
a = np.arange(12).reshape((3,4))
print(a)

x1 = np.split(a,2,axis=1)
print(x1)
#等项分割
x2 = np.array_split(a,3,axis=1)
#不等项分割
x3 = np.vsplit(a,3)
#水平方向上额的不等量分割
x4 = np.hsplit(a,2)
#竖直方向上额的不等量分割
print(x3)
print(x4)
'''
'''
#第九章 numpy的赋值
a = np.arange(4)
print(a)
b = a 
#直接变成了a
c = a
#直接变成了a
d = b
#直接变成了a
a[0] = 11
print(a,b,c,d)
b is a
#会返回一个true或者faul
print(b is a)
#现在abcd完全一样
b = a.copy # deepcopy 只是赋值,并不关联
'''

你可能感兴趣的:(笔记,numpy)