import numpy as np
array = np.array([[1,2,3],[2,3,4]])
print(array)
print(‘number of dim’,array.ndim)
print(‘shape:’,array.shape)
print(‘size’,array.size)
a = np.array([2,23,4])
print(a)
a = np.array([2,23,4],dtype=np.int)
print(a.dtype)
a = np.array([2,23,4],dtype=np.int32)
print(a.dtype)
a = np.array([2,23,4],dtype=np.float)
print(a.dtype)
a = np.array([2,23,4],dtype=np.float32)
print(a.dtype)
a = np.array([[2,23,4],[2,32,4]])
print(a)
a = np.zeros((3,4))
print(a)
a = np.ones((3,4),dtype=np.int)
a
a = np.empty((3,4))
a
a = np.arange(10,20,2)
a
a = np.arange(12).reshape((3,4))
a
a = np.linspace(1,10,20)
a
a = np.linspace(1,10,20).reshape((5,4))
a
import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4)
a,b
numpy的几种基本运算
c=a-b
c
c=a+b
c
c=a*b
c
#乘方
c=b**2
c
c=10*np.sin(a)
c
print(b<3)
#如果想要执行是否相等的判断, 依然需要输入 == 而不是 = 来完成相应的逻辑判断。
#上述运算均是建立在一维矩阵,即只有一行的矩阵上面的计算,
a = np.array([[1,1],[0,1]])
b = np.arange(4).reshape((2,2))
print(a)
print(b)
#其一是前文中的对应元素相乘,
#其二是标准的矩阵乘法运算,
#即对应行乘对应列得到相应元素:
c_dot = np.dot(a,b)
print(c_dot)
c_dot_2 = a.dot(b)
print(c_dot_2)
import numpy as np
a=np.random.random((2,4))
print(a)
np.sum(a)
np.min(a)
np.max(a)
print(“a =”,a)
print(“sum =”,np.sum(a,axis=1))
print(“min =”, np.min(a,axis=0))
print(“max =”,np.max(a,axis=1))
import numpy as np
A = np.arange(2,14).reshape((3,4))
print(np.mean(A))
print(np.average(A))
print(A.mean())
#print(A.median()) # 用不了?
np.median(A)
print(np.cumsum(A))
print(np.diff(A))
#每一行中后一项与前一项之差。故一个3行4列矩阵通过函数计算得到的矩阵便是3行3列的矩阵。
print(np.nonzero(A))
#这个函数将所有非零元素的行与列坐标分割开,重构成两个分别关于行和列的矩阵。
#wo们可以对所有元素进行仿照列表一样的排序操作,
#但这里的排序函数仍然仅针对每一行进行从小到大排序操作:
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(A)
print(np.clip(A,5,9))
import numpy as np
A = np.arange(3,15)
print(A[3])
print(A[0])
A = np.arange(3,15).reshape((3,4))
print(A[2])
A = np.arange(3,15).reshape((3,4))
A
print(A[1][1])
print(A[1,1])
print(A[1,1:3])
for row in A:
print(row)
for column in A.T:
print(column)
import numpy as np
A = np.arange(3,15).reshape(3,4)
print(A.flatten())
for item in A.flat:
print(item)
#这一脚本中的flatten是一个展开性质的函数,将多维的矩阵进行展开成1行的数列。
import numpy as np
A = np.array([1,1,1])
A
B = np.array([2,2,2])
B
print(np.vstack((A,B)))
#vertical stack本身属于一种上下合并,即对括号中的两个整体进行对应操作。此时我们对组合而成的矩阵进行属性探究:
C = np.vstack((A,B))
print(A.shape, C.shape)
D = np.hstack((A,B))
print(D)
print(A.shape,D.shape)
#说完了array的合并,
#我们稍稍提及一下前一节中转置操作
#,如果面对如同前文所述的A序列,
#转置操作便很有可能无法对其进行转置(因为A并不是矩阵的属性),
#此时就需要我们借助其他的函数操作进行转置:
print(A[np.newaxis,:])
print(A[np.newaxis,:].shape)
print(A[:,np.newaxis])
print(A[:,np.newaxis].shape)
import numpy as np
A = np.array([1,1,1])[:,np.newaxis]
A
B = np.array([2,2,2])[:,np.newaxis]
B
C = np.vstack((A,B))
C
D = np.hstack((A,B))
D
print(D)
print(A.shape,D.shape)
#当你的合并操作需要针对多个矩阵或序列时,借助concatenate函数可能会让你使用起来比前述的函数更加方便:
C = np.concatenate((A,B,B,A),axis=0)
C
print©
D = np.concatenate((A,B,B,A),axis=1)
D
print(D)
#axis参数很好的控制了矩阵的纵向或是横向打印,相比较vstack和hstack函数显得更加方便。
import numpy as np
A = np.arange(12).reshape((3,4))
print(A)
print(np.split(A,2,axis=1))
C,D = np.split(A,2,axis=1)
C,D
print(np.split(A,3,axis=0))
print(np.split(A,3,axis=1))
print(np.array_split(A,3,axis=1))
print(np.vsplit(A,3)) # #等于 print(np.split(A, 3, axis=0))
print(np.hsplit(A,2))
import numpy as np
a = np.arange(4)
b = a
c = a
d = b
a[0]=11
print(a)
b is a
c is a
d is a
d[1:3] = [22,33]
print(a)
print(b)
print©
b = a.copy()
print(b)
a[2] = 44
print(a)
print(b)