Skip to content

Commit 32d7f04

Browse files
committed
numpy
1 parent b383424 commit 32d7f04

File tree

6 files changed

+137
-3
lines changed

6 files changed

+137
-3
lines changed

PythonDemo/numpy/arrayboolean.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# -*- coding: utf-8 -*-
2+
"""
3+
Created on Mon Mar 12 16:07:17 2018
4+
5+
@author: Administrator
6+
@description: any和all函数
7+
"""
8+
import numpy as np
9+
from numpy.matlib import randn
10+
print('Boolean values are coerced to 1 (True) and 0 (False) in the above methods. Thus, sum is often used as a means of counting True values in a boolean array:')
11+
arr = randn(100)
12+
print("输出生成的随机数数组中数值大于0的个数:")
13+
print((arr > 0).sum())
14+
bools = np.array([False, False, True, False])
15+
print(bools)
16+
print("只要有一个为true就输出true:")
17+
print(bools.any()) # true
18+
print("全部才输出true:")
19+
print(bools.all()) #false
20+
bools2 = np.array([ True, True, True, True])
21+
print(bools2.all()) #true
22+
23+
#两个数组之间
24+
# any():a数组与b数组有一个元素对应相等就输出true
25+
#all():a数组与b数组每个元素都对应相等才输出true
26+
a=np.array([1,2,3])
27+
b=np.array([2,2,3])
28+
boolean=(a==b).all()
29+
boolean2=(a==b).any()
30+
print(boolean)#true
31+
print(boolean2)#true

PythonDemo/numpy/arraymethod.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
@description: numpy库操纵数组的一些方法
77
"""
88
import numpy as np
9-
109
from numpy.matlib import randn
1110
#定义数组类型
1211
arr3 = np.array([1, 2, 3], dtype=np.float64)
@@ -32,4 +31,23 @@
3231
arr3d[0] = 3 #将第1个二维数组的元素都修改为3
3332
arr3d[1] = 3 #将第2个二维数组的元素都修改为3
3433
print(arr3d) #输出全为3的三维数组
34+
arr3d[0] = old_values
35+
print(arr3d) # 输出 [[[1 2 3] [4 5 6]] [[3 3 3] [3 3 3]] ]
36+
37+
names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
38+
print("输出names数组:")
39+
print(names)
40+
print("输出randn(7, 4)生成的7行4列的随机数函数")
41+
data = randn(7, 4)
42+
print(data)
43+
print("判断names数组中的每一个元素是否等于Bob:")
44+
print(names == 'Bob') #, 输出 [True False False True FalseFalse False]
45+
print("data[names == 'Bob']输出data中判断为true的行元素:")
46+
print(data[names == 'Bob'])
47+
print("data[names == 'Bob', 2:]输出data中判断为true所在的行,及第3列第4列的所有元素:")
48+
print(data[names == 'Bob', 2:],) #输出data中判断为true所在的行,及第3列第4列的所有元素;
49+
print("data[names == 'Bob', 3]输出data中判断为true所在的行及第4列的元素 :")
50+
print(data[names == 'Bob', 3])
51+
print("输出名字为Bob以及Will所在的行元素 :")
52+
print(data[((names == 'Bob') | (names == 'Will'))]) #输出名字为Bob以及Will所在的行元素
3553

PythonDemo/numpy/arraymethod2.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# -*- coding: utf-8 -*-
2+
"""
3+
Created on Mon Mar 12 15:37:14 2018
4+
5+
@author: Administrator
6+
"""
7+
import numpy as np
8+
from numpy.matlib import randn
9+
arr = np.empty((8, 4)) #二维数组
10+
#range(8)即 [0, 1, 2, 3, 4, 5, 6, 7]
11+
for i in range(8):
12+
arr[i] = i #第i行的数字都为i;
13+
14+
print(arr)
15+
print(arr[[4, 3, 0, 6]]) #[[ 4. 4. 4. 4.] [ 3. 3. 3. 3.] [ 0. 0. 0. 0.] [ 6. 6. 6. 6.]]
16+
arr = np.arange(32).reshape((8, 4))
17+
print("np.arange(32).reshape((8, 4)):")
18+
print(arr)
19+
print(arr[[1, 5, 7, 2], [0, 3, 1, 2]])#[ 4 23 29 10]
20+
print(" 输出矩阵转置: ")
21+
arr = np.arange(15).reshape((3, 5))
22+
print(arr.T)
23+
print("输出np.arange(10):")
24+
arr = np.arange(10)
25+
print(arr)
26+
print("输出np.sqrt(arr):")
27+
print(np.sqrt(arr)) #仍是一维数组,求数组中的每个元素求平方根
28+
print("输出np.exp(arr)):")
29+
print(np.exp(arr)) #仍是一维数组,求以e为底,数组中的每个元素作为指数的值
30+
print("randn(8):")
31+
x = randn(8) #生成8个随机数
32+
print(x)
33+
print("randn(8):")
34+
y = randn(8)
35+
print(y)
36+
print(np.maximum(x, y)) #仍是一维数组,每个元素为数组x和y对应元素最大的那个;
37+
print("-------------------------------------")
38+
xarr = np.array([1.1, 1.2, 1.3, 1.4, 1.5])
39+
yarr = np.array([2.1, 2.2, 2.3, 2.4, 2.5])
40+
cond = np.array([True, False, True, True, False])
41+
result = np.where(cond, xarr, yarr)
42+
print(result)#输出:[1.1 2.2 1.3 1.4 2.5]
43+
print("-------------------------------------")
44+
arr = randn(4, 4)
45+
print(arr)
46+
print(np.where(arr > 0, 2, -2))
47+
print("-------------------------------------")
48+
arr = np.random.randn(5, 4) # normally-distributed data
49+
print(arr)
50+
print(arr.mean())
51+
print(np.mean(arr))
52+
print(arr.sum())
53+
print(arr.mean(axis=1))
54+

PythonDemo/numpy/arraysort.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# -*- coding: utf-8 -*-
2+
"""
3+
Created on Mon Mar 12 16:01:13 2018
4+
5+
@author: Administrator
6+
@description: numpy库中的数组排序(sort)函数
7+
"""
8+
import numpy as np
9+
from numpy.matlib import randn
10+
arr = randn(8)
11+
print("排序前:")
12+
print(arr)
13+
print("排序后:")
14+
print(np.sort(arr))

PythonDemo/numpy/arrayunique.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# -*- coding: utf-8 -*-
2+
"""
3+
Created on Mon Mar 12 16:02:47 2018
4+
5+
@author: Administrator
6+
@description: numpy库unique函数保证数组中的元素唯一(剔除重复元素)
7+
"""
8+
9+
import numpy as np
10+
names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
11+
print(np.unique(names))
12+
ints = np.array([3, 3, 3, 2, 2, 1, 1, 4, 4,5])
13+
print(np.unique(ints))

PythonDemo/numpy/creatArray.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
@description: numpy库创建数组的一些方法
77
"""
88
import numpy as np
9-
9+
from numpy.matlib import randn
1010
print("创建一维数组:")
1111
data1 = [3, 3.3, 9, 5, 6]
1212
arr1 = np.array(data1)
@@ -30,4 +30,8 @@
3030
print(np.empty((3,6)))
3131
#用arrange函数创建数组
3232
print("np.arange(9)创建一维数组:")
33-
print(np.arange(9))
33+
print(np.arange(9))
34+
#用随机函数randn创建二维数组,7行4列
35+
print("randn(7, 4))创建数字随机的一维数组:")
36+
data = randn(7, 4)
37+
print(data)

0 commit comments

Comments
 (0)