索引和切片
import numpy as np
uk = "./loadtxt/UK_video_data_numbers.csv"
us = "./loadtxt/XXXX.csv"
t1 = np.loadtxt(uk, delimiter=",", dtype="int64")
# print(t1)
"""
他们都是ndarray类型的
"""
# 取某一行
print(t1[2])
print(t1[2, :])
print("*" * 100)
# 取连续多行
print(t1[2:4])
print(t1[2:4, :])
print("*" * 100)
# 取不连续多行
print(t1[[1, 3, 4]])
print(t1[[1, 3, 4], :])
print("*" * 100)
# 取某一列
print(t1[:, 1])
print("+" * 100)
# 取连续多列
print(t1[:, 1:3])
print("+" * 100)
# 取不连续多列
print(t1[:, [1, 3]])
print("+" * 100)
# 取多行和多列
# 2行3列
print(t1[2, 3])
print(type(t1[2, 3]))
print("-" * 100)
# 3——6行、1——3列
print(t1[3:6, 1:3])
print("-" * 100)
# 某些行、某些列的点 (1, 1)、 (3, 3)
print(t1[[1, 3], [1, 3]])
print("-" * 100)
修改数值
import numpy as np
import random
t1 = np.array([random.randint(0, 2000) for i in range(100)]).reshape((10, 10))
# 第1行到第2行、第1列到第2列改为 0
t1[1: 3, 1: 3] = 0
print(t1)
print("*" * 100)
# 输出每个数字是否大于1000
print(t1 < 1000)
print("*" * 100)
# 输出小于1000的数字
print(t1[t1 < 1000])
print("*" * 100)
# 将小于1000的改为-1
t1[t1 < 1000] = -1
print(t1)
print("*" * 100)
输出
[[1319 602 1554 498 140 206 1754 1346 880 959]
[1092 0 0 357 1626 1525 882 1967 1254 871]
[1457 0 0 1217 449 1606 278 1381 1968 416]
[1538 1242 1548 859 639 918 326 1609 1287 1033]
[1190 643 1070 1780 1898 1563 1139 828 1666 356]
[ 178 1182 1411 37 718 1759 1911 893 919 594]
[ 61 334 1736 1362 1015 174 612 550 498 1167]
[ 965 1076 1818 307 1811 847 1864 1930 983 700]
[ 415 902 1742 1141 1841 1984 690 1123 1424 1396]
[ 364 1626 463 140 591 465 874 1421 1903 102]]
****************************************************************************************************
[[False True False True True True False False True True]
[False True True True False False True False False True]
[False True True False True False True False False True]
[False False False True True True True False False False]
[False True False False False False False True False True]
[ True False False True True False False True True True]
[ True True False False False True True True True False]
[ True False False True False True False False True True]
[ True True False False False False True False False False]
[ True False True True True True True False False True]]
****************************************************************************************************
[602 498 140 206 880 959 0 0 357 882 871 0 0 449 278 416 859 639
918 326 643 828 356 178 37 718 893 919 594 61 334 174 612 550 498 965
307 847 983 700 415 902 690 364 463 140 591 465 874 102]
****************************************************************************************************
[[1319 -1 1554 -1 -1 -1 1754 1346 -1 -1]
[1092 -1 -1 -1 1626 1525 -1 1967 1254 -1]
[1457 -1 -1 1217 -1 1606 -1 1381 1968 -1]
[1538 1242 1548 -1 -1 -1 -1 1609 1287 1033]
[1190 -1 1070 1780 1898 1563 1139 -1 1666 -1]
[ -1 1182 1411 -1 -1 1759 1911 -1 -1 -1]
[ -1 -1 1736 1362 1015 -1 -1 -1 -1 1167]
[ -1 1076 1818 -1 1811 -1 1864 1930 -1 -1]
[ -1 -1 1742 1141 1841 1984 -1 1123 1424 1396]
[ -1 1626 -1 -1 -1 -1 -1 1421 1903 -1]]
****************************************************************************************************
三元运算符 where
print(np.where(t1 < 1000, 0, 10))
输出
[[10 10 0 10 10 10 10 10 0 0]
[10 0 0 10 0 0 10 0 0 10]
[10 0 0 0 10 10 10 10 10 10]
[ 0 10 10 10 10 10 10 0 0 0]
[ 0 0 0 10 10 0 10 10 10 0]
[10 10 0 10 10 10 0 10 0 10]
[ 0 10 10 0 10 10 10 10 0 0]
[ 0 10 10 10 0 10 10 0 10 0]
[10 0 0 0 10 10 10 0 10 0]
[ 0 10 0 0 0 0 10 10 0 10]]
补充python中的三元运算符
a = 3 if 3 < 2 else 2
a
Out[10]: 2
clip裁剪
t.clip(100, 500)
:小于100的替换为100、大于500的替换为500