numpy索引和切片

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/XUEER88888888888888/article/details/85847498
import numpy as np

#从csv中读取数据
us_file_path = "./youtube_video_data/US_video_data_numbers.csv"
t1 = np.loadtxt(us_file_path,delimiter=",",dtype="int")
print("原数据")
print(t1)
print("*"*100)

#取行
print("取行")
print(t1[2])
print("*"*100)

#取连续的多行
print("取连续的多行")
print(t1[2:])
print("*"*100)

#取不连续的多行
print("取不连续的多行")
print(t1[[2,4,6]])
print("*"*100)


#取列
print("取列")
print(t1[:,0])#逗号分隔,前面表示取行后面表示取列 ,:表示都要
print("*"*100)


#取到的行列重新赋值
print("取到的行列重新赋值")
t1[[2,4,6]] =0
print(t1[[2,4,6]])
print("*"*100)


#判断小于10的,返回布尔数组
print("判断小于10的,返回布尔数组")
print(t1<10)
print("*"*100)


#判断小于10,并将小于10的替换为3
print("判断小于10,并将小于10的替换为3")
t1[t1<10]=3
print(t1)
print("*"*100)



#三元运算符 t1小于10的赋值为0,大于10的赋值为10
print("三元运算符 t1小于10的赋值为0,大于10的赋值为10")
print(np.where(t1<10,0,10))
print("*"*100)


#裁剪,小于10的替换为10,大于10的替换为18
print("裁剪,小于10的替换为10,大于10的替换为18")
print(t1.clip(10,18))
print("*"*100)





print("转置之前的原数据")
t2 = np.arange(24).reshape((4,6))
print(t2)

#转置的方法
print("转置的方法")
print(t2.transpose())
print(t2.T)
print(t2.swapaxes(1,0))

结果

C:\Users\Alienware\machineLearnings\Scripts\python.exe C:/Users/Alienware/PycharmProjects11/machineLearnings/numpy练习/numpyPractice.py
原数据
[[4394029  320053    5931   46245]
 [7860119  185853   26679       0]
 [5845909  576597   39774  170708]
 ...
 [ 142463    4231     148     279]
 [2162240   41032    1384    4737]
 [ 515000   34727     195    4722]]
****************************************************************************************************
取行
[5845909  576597   39774  170708]
****************************************************************************************************
取连续的多行
[[5845909  576597   39774  170708]
 [2642103   24975    4542   12829]
 [1168130   96666     568    6666]
 ...
 [ 142463    4231     148     279]
 [2162240   41032    1384    4737]
 [ 515000   34727     195    4722]]
****************************************************************************************************
取不连续的多行
[[5845909  576597   39774  170708]
 [1168130   96666     568    6666]
 [ 666169    9985     297    1071]]
****************************************************************************************************
取列
[4394029 7860119 5845909 ...  142463 2162240  515000]
****************************************************************************************************
取到的行列重新赋值
[[0 0 0 0]
 [0 0 0 0]
 [0 0 0 0]]
****************************************************************************************************
判断小于10的,返回布尔数组
[[False False False False]
 [False False False  True]
 [ True  True  True  True]
 ...
 [False False False False]
 [False False False False]
 [False False False False]]
****************************************************************************************************
判断小于10,并将小于10的替换为3
[[4394029  320053    5931   46245]
 [7860119  185853   26679       3]
 [      3       3       3       3]
 ...
 [ 142463    4231     148     279]
 [2162240   41032    1384    4737]
 [ 515000   34727     195    4722]]
****************************************************************************************************
三元运算符 t1小于10的赋值为0,大于10的赋值为10
[[10 10 10 10]
 [10 10 10  0]
 [ 0  0  0  0]
 ...
 [10 10 10 10]
 [10 10 10 10]
 [10 10 10 10]]
****************************************************************************************************
裁剪,小于10的替换为10,大于10的替换为18
[[18 18 18 18]
 [18 18 18 10]
 [10 10 10 10]
 ...
 [18 18 18 18]
 [18 18 18 18]
 [18 18 18 18]]
****************************************************************************************************
转置之前的原数据
[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]
 [12 13 14 15 16 17]
 [18 19 20 21 22 23]]
转置的方法
[[ 0  6 12 18]
 [ 1  7 13 19]
 [ 2  8 14 20]
 [ 3  9 15 21]
 [ 4 10 16 22]
 [ 5 11 17 23]]
[[ 0  6 12 18]
 [ 1  7 13 19]
 [ 2  8 14 20]
 [ 3  9 15 21]
 [ 4 10 16 22]
 [ 5 11 17 23]]
[[ 0  6 12 18]
 [ 1  7 13 19]
 [ 2  8 14 20]
 [ 3  9 15 21]
 [ 4 10 16 22]
 [ 5 11 17 23]]

Process finished with exit code 0

展开阅读全文

没有更多推荐了,返回首页