os.path.join()函数:连接两个或更多的路径名组件
1.如果各组件名首字母不包含’/’,则函数会自动加上
2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃
3.如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾
Demo1
import os
Path1 = 'home'
Path2 = 'develop'
Path3 = 'code'
Path10 = Path1 + Path2 + Path3
Path20 = os.path.join(Path1,Path2,Path3)
print ('Path10 = ',Path10)
print ('Path20 = ',Path20)
输出
path10 = homedevelopcode
Path20 = home\develop\code
Demo2
import os
Path1 = '/home'
Path2 = 'develop'
Path3 = 'code'
Path10 = Path1 + Path2 + Path3
Path20 = os.path.join(Path1,Path2,Path3)
print ('Path10 = ',Path10)
print ('Path20 = ',Path20)
输出
Path10 = /homedevelopcode
Path20 = /home\develop\code
Demo3
import os
Path1 = 'home'
Path2 = '/develop'
Path3 = 'code'
Path10 = Path1 + Path2 + Path3
Path20 = os.path.join(Path1,Path2,Path3)
print ('Path10 = ',Path10)
print ('Path20 = ',Path20)
输出
Path10 = home/developcode
Path20 = /develop\code
Demo4
import os
Path1 = 'home'
Path2 = 'develop'
Path3 = '/code'
Path10 = Path1 + Path2 + Path3
Path20 = os.path.join(Path1,Path2,Path3)
print ('Path10 = ',Path10)
print ('Path20 = ',Path20 )
输出
Path10 = homedevelop/code
Path20 = /code
转:https://blog.csdn.net/hduxiejun/article/details/80289476
NiBabel包是可以对常见的医学和神经影像文件格式进行读写。
https://nipy.org/nibabel/
安装
pip install nibabel
加载相关库
import os
import numpy as np
import nibabel as nib
载入图像
example_filename = os.path.join(data_path, 'example.nii.gz')
img = nib.load(example_filename)
查看图像形状
img.shape
(611, 512, 512)
获取图像数据
img.get_data()
图像进行仿射变换
img.affine.shape
————————————————
原文链接:https://blog.csdn.net/u014657795/article/details/88790440
使用 get_fdata
可以转为float 为 dtype 的 ndarray类型的 object
get_data和get_fdata
二者的一些说明如下:
get_data(caching='fill')
Return image data from image with any necessary scaling applied
get_fdata(caching='fill', dtype=)
Return floating point image data with necessary scaling applied
简单的来说, 一个是返回原数据, 一个则是返回浮点数。
就是这么点区别
在这里可以找到 https://nipy.org/nibabel/reference/nibabel.dataobj_images.html
(也就是get_data 和 get_fdata 的一些区别)
不过有一点需要注意 , 这个get_data 函数要被取缔了:
We recommend you use the get_fdata method instead of the get_data method,
because it is easier to predict the return data type.
We will deprecate the get_data method around April 2018,
and remove it around April 2020.
If you don’t care about the predictability of the return data type,
and you want the minimum possible data size in memory,
you can replicate the array
that would be returned by img.get_data() by using np.asanyarray(img.dataobj).
————————————————
原文链接:https://blog.csdn.net/Pierce_KK/article/details/100016443
append
append() 方法用于在列表末尾添加新的对象。
https://www.runoob.com/python/att-list-append.html
该方法无返回值,但是会修改原来的列表
实例
以下实例展示了 append()函数的使用方法:
#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc'];
aList.append( 2009 );
print "Updated List : ", aList;
以上实例输出结果如下:
Updated List : [123, 'xyz', 'zara', 'abc', 2009]
列表可包含任何数据类型的元素,单个列表中的元素无须全为同一类型。
append() 方法向列表的尾部添加一个新的元素。
列表是以类的形式实现的。“创建”列表实际上是将一个类实例化。因此,列表有多种方法可以操作。extend()方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中。
ndarray对象的常用属性
接下来介绍ndarray对象最常用的属性
属性 含义
T 转置,与self.transpose( )相同,如果维度小于2返回self
size 数组中元素个数
itemsize 数组中单个元素的字节长度
dtype 数组元素的数据类型对象
ndim 数组的维度
shape 数组的形状
data 指向存放数组数据的python buffer对象
flat 返回数组的一维迭代器
imag 返回数组的虚部
real 返回数组的实部
nbytes 数组中所有元素的字节长度
>>> a = np.array(range(15)).reshape(3,5)
>>> a
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
>>> a.T
array([[ 0, 5, 10],
[ 1, 6, 11],
[ 2, 7, 12],
[ 3, 8, 13],
[ 4, 9, 14]])
>>> a.size
15
>>> a.itemsize
8
>>> a.ndim
2
>>> a.shape
(3, 5)
>>> a.dtype
dtype('int64')
链接:https://www.jianshu.com/p/5cc8738aa3da
np.vstack(tup)使用
沿着竖直方向将矩阵堆叠起来。
Note: the arrays must have the same shape along all but the first axis. 除开第一维外,被堆叠的矩阵各维度要一致。
示例代码:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
res = np.vstack((arr1, arr2))
结果如下
array([[1, 2, 3],
[4, 5, 6]])
np.hstack(tup)
沿着水平方向将数组堆叠起来。
Note:
tup : sequence of ndarrays
All arrays must have the same shape along all but the second axis.
示例代码:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
res = np.hstack((arr1, arr2))
print res
arr1 = np.array([[1, 2], [3, 4], [5, 6]])
arr2 = np.array([[7, 8], [9, 0], [0, 1]])
res = np.hstack((arr1, arr2))
print res
结果如下:
[1 2 3 4 5 6]
[[1 2 7 8]
[3 4 9 0]
[5 6 0 1]]
————————————————
原文链接:https://blog.csdn.net/u012609509/article/details/70319293
Reshape(-1,1)
reshape(行数,列数)常用来更改数据的行列数目
reshape(-1,1)中-1被理解为unspecified value,意思是未指定为给定的
就是转换为x行,一列
参考:https://www.jianshu.com/p/d9df005636a6
shuffle() 函数
shuffle() 方法将序列的所有元素随机排序。