numpy基本操作手册

2019-04-19  本文已影响0人  张小张x86

numpy优点

ndarray

data = [1,3,7,8]
arr = np.array(data)
data1 =[ [1,3,7,8],[9,7,5,3]]
arr1 = np.array(data1)
print(arr)
print(arr1)
>>>[1 3 7 8]
>>>[[1 3 7 8] [9 7 5 3]]
arr3 = np.asarray([3,4,5])
print(arr3)
>>>[3 4 5]

区别:array创建是对原始数据的一份拷贝,asarray则是指向原始对象

arr0 = np.zeros(4)
arr1 = np.zeros((2,3))
print(arr0)
print(arr1)
>>>[0. 0. 0. 0.]
>>>[[0. 0. 0.] [0. 0. 0.]]
ones1 = np.ones(4)
ones2 = np.ones((2,3))
print(ones1)
print(ones2)
>>>[1. 1. 1. 1.]
>>>[[1. 1. 1.] [1. 1. 1.]]
np.empty((3,4))
e = np.eye(3)
print(e)
>>>[[1. 0. 0.]
    [0. 1. 0.]
    [0. 0. 1.]]
e = np.eye(3)
shape = e.shape
print(shape)
>>>(3, 3)

ndarray与标量之间的计数

arr = np.asarray([[200,0,0],[0,0,0]])
arr1 = arr+3
print(arr1)
>>>[[203   3   3]
    [3   3   3]]
arr2 = arr*1.2
print(arr2)
>>>[[240.   0.   0.]
   [0.   0.   0.]]
arr = np.asarray([[200,0,0],[0,0,0]])
arr1 = np.asarray([[2,1,4],[1,7,9]])
arr2 = arr*arr1
print(arr2)
arr3 = arr + arr1
print(arr3)
arr4 = np.add(arr,arr1)
print(arr4)
>>>[[400   0   0]
    [0   0   0]]
>>>[[202   1   4]
    [1   7   9]]
>>>[[202   1   4]
    [1   7   9]]
arr = np.asarray([[200,0,0],[0,0,0]])
print(arr[0])
>>>[200   0   0]
a= [1,2,3,4,5,6]
print(a[2:4])
>>>[3, 4]
b = [[1,3,5,7,9],[2,4,6,8,0]]
print(b[0][0:3])
>>>[1, 3, 5]
b = [[1,3,5,7,9],[2,4,6,8,0],[3,4,5,6,7]]
print(b[0:1,:])
>>>[[1, 3, 5, 7, 9]]
arr = np.empty((8,4))
for i in range(8):
    arr[i] = i
print(arr)
#以某种特定顺序选取行子集,只需要传入一个用于指定行顺序的整数数组或ndarray
print(arr[[3,5,1,6]])
>>>
[[0. 0. 0. 0.]
 [1. 1. 1. 1.]
 [2. 2. 2. 2.]
 [3. 3. 3. 3.]
 [4. 4. 4. 4.]
 [5. 5. 5. 5.]
 [6. 6. 6. 6.]
 [7. 7. 7. 7.]]
>>>
[[3. 3. 3. 3.]
 [5. 5. 5. 5.]
 [1. 1. 1. 1.]
 [6. 6. 6. 6.]]
arr = np.arange(32).reshape((8,4))
print(arr)
>>>
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]
 [24 25 26 27]
 [28 29 30 31]]
#数组索引
#同时传入一个二维数组
#数组索引第一个元素为一个数组,代表行的序号,数组索引第二个元素为一个数组,表示列的序号
print(arr[[1,5,7,2],[0,3,1,2]])
>>>[ 4 23 29 10]
#数组索引第一个元素为一个数组,表示行的序号,第二个索引为一个切片,表示一个列的切片
print(arr[[1,5,7],0:3])
>>>
[[ 4  5  6]
 [20 21 22]
 [28 29 30]]
#选取4行,所有列,修改列顺序
print(arr[[1,5,7,2]][:,[3,2,1,0]])
>>>
[[ 7  6  5  4]
 [23 22 21 20]
 [31 30 29 28]
 [11 10  9  8]]
print(arr[np.ix_([1,5,7,2],[0,2,1,3])])
>>>
[[ 4  6  5  7]
 [20 22 21 23]
 [28 30 29 31]
 [ 8 10  9 11]]

numpy常用函数

对数组进行元素级的运算函数

arr = np.arange(16).reshape((4,4))
print(arr)
arr1 = np.exp(arr)
print(arr1)

数学统计方法

arr = np.arange(16).reshape((4,4))
print(arr.mean())
>>>7.5
print(np.mean(arr))
>>>7.5
print(np.mean(arr,axis=0))
>>>[6. 7. 8. 9.]
print(np.mean(arr,axis=1))
>>>[ 1.5  5.5  9.5 13.5]

线性代数

x = np.array([[1,2,3],[4,5,6]])
y = np.array([[6,20],[-1,3],[9,8]])
z = np.dot(x,y)
print(z)
>>>
[[ 31  50]
 [ 73 143]]

标准线性代数运算函数 numpy.linalg

X = np.random.rand(5,5)
print(X)
inv_X = np.linalg.inv(X)
print(inv_X)

随机数生成 numpy.random

上一篇下一篇

猜你喜欢

热点阅读