numpy中数组的简单运算以及使用

import numpy as np

# 定义一个数组
test_array = np.array([[1 ,2 ,3] ,[3 ,4 ,5]])
###数组简单的加减乘除法
# 加法
print(test_arra y +1)
# 返回[[2 3 4][4 5 6]]

# 减法
print(test_arra y -11)
# 返回[[-10  -9  -8][ -8  -7  -6]]

# 乘法
print(test_arra y *3)
# 返回[[ 3  6  9][ 9 12 15]]

# 除法
print(test_arra y /2)
# 返回[[0.5 1.  1.5][1.5 2.  2.5]]


import numpy as np
###数组的索引和切片
test_arr = np.arange(10)
print(test_arr)
print(test_arr[1])
print(test_arr[1:5])
"""
运行结果
[0 1 2 3 4 5 6 7 8 9]
1
[1 2 3 4]
"""


###使用列表或数组来进行赋值
import numpy as np
test_arr = np.arange(10)
print(test_arr)
test_arr[1:5] = [6,6,6,6]
print(test_arr)
test_arr[1:5] = np.array([9,9,9,9])
print(test_arr)

"""
运行结果
[0 1 2 3 4 5 6 7 8 9]
[0 6 6 6 6 5 6 7 8 9]
[0 9 9 9 9 5 6 7 8 9]
"""

###数组的单元素赋值
import numpy as np
test_arr = np.arange(10)
print(test_arr)
test_arr[1:5] = 12
print(test_arr)

"""
运行结果
[0 1 2 3 4 5 6 7 8 9]
[ 0 12 12 12 12  5  6  7  8  9]
"""
# 两个注意点
# (a)一个标量的赋值瞬间实现整个切片区域的赋值,叫做numpy的广播功能
# (b)数组切片和列表切片,仅数组切片有广播功能


###列表和数组的一个重要的区别
# 跟列表切片最大的区别是数组切片是原数组的视图,这就意味着原数组数据不会被复制保留,视图上任何改变都会影响原数组。
# 所以,数组切片赋值会改变原数组,列表切片赋值不会改变愿列表,想要改变列表需要直接给列表赋值。


# 二维数组的索引和切片
# 创建一个3x3的二维数组
import numpy as np
test_arr = np.arange(9).reshape(3 ,3)
print(test_arr)

"""
运行结果
[[0 1 2]
 [3 4 5]
 [6 7 8]]
"""
# 取出4

import numpy as np
test_arr = np.arange(9).reshape(3 ,3)
print(test_arr)
print(%test_arr[1 ,1]) # 第一个参数为行号,第二个参数为列号
"""
运行结果
[[0 1 2]
 [3 4 5]
 [6 7 8]]
 4
"""


# 三维数组的索引和切片
# 创建一个有两个3x3二位数组的三维数组
import numpy as np
test_arr = np.arange(18).reshape(2 ,3 ,3  )  # 第一个参数为总共有几个元素,第二个参数为行号,第三个参数为列号
print(test_arr)
"""
运行结果
[[[ 0  1  2]
  [ 3  4  5]
  [ 6  7  8]]

 [[ 9 10 11]
  [12 13 14]
  [15 16 17]]]
"""
# 取出9
print(test_arr[1 ,0 ,0])
# 若array切片时不想改变原array的结构,可以使用copy()先进行拷贝
test_xxx = np.arange(18).reshape(2 ,3 ,3)
test_ttt = test_xxx.copy()
test_ttt[1 ,0 ,0] = 333
print(test_xxx)
print(test_ttt)


###布尔形索引(进行筛选)
import numpy as np

name = np.array(['wiz' ,'gougou' ,'ac' ,'lc'])
score = np.array([[99 ,99 ,99] ,[88 ,88 ,88] ,[81 ,87 ,66] ,[100 ,100 ,100]])
print(score[name=='gougou'])
"""
运行结果
[[88 88 88]]
"""


###数组的转置
arr = np.arange(16).reshape(2 ,2 ,4)
print(arr)
print(arr.T)


###numpy的基本数学统计方法
# 方差(体现数组中数据的离散情况,数值越小数据越稳定)
arr = np.arange(16).reshape(2 ,4 ,2)
print(arr.var())
# 标准差
print(arr.std())

猜你喜欢

转载自www.cnblogs.com/xaiobong/p/10074741.html
今日推荐